App:Library:LVGL:docs:Widgets:Base object

提供: robot-jp wiki
2022年8月31日 (水) 20:46時点におけるTakashi (トーク | 投稿記録)による版
ナビゲーションに移動検索に移動

https://docs.lvgl.io/latest/en/html/widgets/obj.html

https://docs.lvgl.io/8.2/widgets/index.html


Base object (lv_obj)

Overview

英文 自動翻訳

The 'Base Object' implements the basic properties of widgets on a screen, such as:

  • coordinates
  • parent object
  • children
  • contains the styles
  • attributes like Clickable, Scrollable, etc.


In object-oriented thinking, it is the base class from which all other objects in LVGL are inherited.

This, among another things, helps reduce code duplication.

The functions and functionalities of Base object can be used with other widgets too. For example lv_obj_set_width(slider, 100)


The Base object can be directly used as a simple widgets. It nothing else then a rectangle.

ベースオブジェクト」は、画面上のウィジェットの基本的なプロパティを実装したもので、次のようなものです。
  • 座標
  • 親オブジェクト
  • 子供
  • スタイルが含まれています
  • ClickableScrollableなどの属性。


オブジェクト指向の考え方では、LVGL の他のすべてのオブジェクトが継承される基本クラスです。

これはコードの重複を減らすのに役立ちます。


Base オブジェクトの関数と機能は、他のウィジェットでも使用できます。 例えば lv_obj_set_width(slider, 100)


Base オブジェクトは、単純なウィジェットとして直接使用できます。 長方形に他なりません。

戻る : Previous


Coordinates

Size

英文 自動翻訳

The object size can be modified on individual axes with lv_obj_set_width(obj, new_width) and lv_obj_set_height(obj, new_height), or both axes can be modified at the same time with lv_obj_set_size(obj, new_width, new_height).


Styles can add Margin to the objects. Margin tells that "I want this space around me". To set width or height reduced by the margin lv_obj_set_width_margin(obj, new_width) or lv_obj_set_height_margin(obj, new_height). In more exact way: new_width = left_margin + object_width + right_margin.


To get the width or height which includes the margins use lv_obj_get_width/height_margin(obj).


Styles can add Padding to the object as well. Padding means "I don't want my children too close to my sides, so keep this space". To set width or height reduced by the padding lv_obj_set_width_fit(obj, new_width) or lv_obj_set_height_fit(obj, new_height).

In a more exact way: new_width = left_pad + object_width + right_pad To get the width or height which is REDUCED by padding use lv_obj_get_width/height_fit(obj). It can be considered the "useful size of the object".


Margin and padding gets important when Layout or Auto-fit is used by other widgets.

オブジェクトのサイズは、lv_obj_set_width(obj, new_width)およびlv_obj_set_height(obj, new_height)を使用して個々の軸上で変更することも、lv_obj_set_size(obj, new_width, new_height)を使用して両方の軸を同時に変更することもできます。


スタイルは、オブジェクトに余白を追加できます。 マージンは「自分の周りにこのスペースが欲しい」と語っています。 マージン lv_obj_set_width_margin(obj, new_width) または lv_obj_set_height_margin(obj, new_height) だけ縮小された幅または高さを設定します。 より正確には、new_width = left_margin + object_width + right_margin です。


マージンを含む幅または高さを取得するには、lv_obj_get_width/height_margin(obj) を使用します。


スタイルは、オブジェクトにパディングを追加することもできます。 パディングとは、「子供たちを脇に近づけたくないので、このスペースを確保してください」という意味です。 パディング lv_obj_set_width_fit(obj, new_width) または lv_obj_set_height_fit(obj, new_height) によって縮小された幅または高さを設定します。

より正確な方法: new_width = left_pad + object_width + right_pad パディングによって削減された幅または高さを取得するには、lv_obj_get_width/height_fit(obj) を使用します。 これは「オブジェクトの有用なサイズ」と見なすことができます。


レイアウトまたは自動調整が他のウィジェットで使用されている場合、マージンとパディングが重要になります。

戻る : Previous


Position

英文 自動翻訳

You can set the position relative to the parent with lv_obj_set_x(obj, new_x) and lv_obj_set_y(obj, new_y), or both axes at the same time with lv_obj_set_pos(obj, new_x, new_y).

親からの相対位置は、lv_obj_set_x(obj, new_x)lv_obj_set_y(obj, new_y)、またはlv_obj_set_pos(obj, new_x, new_y)を使用して同時に設定できます。
戻る : Previous


Alignment

英文 自動翻訳
You can align the object to another with lv_obj_align(obj, obj_ref, LV_ALIGN_..., x_ofs, y_ofs).
  • obj is the object to align.
  • obj_ref is a reference object. obj will be aligned to it. If obj_ref = NULL, then the parent of obj will be used.
  • The third argument is the type of alignment. These are the possible options:
lv_obj_align(obj, obj_ref, LV_ALIGN_..., x_ofs, y_ofs) を使用して、オブジェクトを別のオブジェクトに位置合わせできます。
  • obj は整列するオブジェクトです。
  • obj_ref は参照オブジェクトです。 obj がそれに合わせられます。 obj_ref = NULL の場合、obj の親が使用されます。
  • 3 番目の引数は、配置のタイプです。 可能なオプションは次のとおりです。
LVGL Lib docs obj.png
  • The alignment types build like LV_ALIGN_OUT_TOP_MID.
  • The last two arguments allow you to shift the object by a specified number of pixels after aligning it.
  • 配置タイプは LV_ALIGN_OUT_TOP_MID のように構築されます。
  • 最後の 2 つの引数を使用すると、位置合わせ後に、指定したピクセル数だけオブジェクトをシフトできます。
For example, to align a text below an image: lv_obj_align(text, image, LV_ALIGN_OUT_BOTTOM_MID, 0, 10).

Or to align a text in the middle of its parent: lv_obj_align(text, NULL, LV_ALIGN_CENTER, 0, 0).


lv_obj_align_origo works similarly to lv_obj_align but it aligns the center of the object.


For example, lv_obj_align_origo(btn, image, LV_ALIGN_OUT_BOTTOM_MID, 0, 0) will align the center of the button the bottom of the image.


The parameters of the alignment will be saved in the object if LV_USE_OBJ_REALIGN is enabled in lv_conf.h.

You can then realign the objects simply by calling lv_obj_realign(obj).

It's equivalent to calling lv_obj_align again with the same parameters.

たとえば、画像の下にテキストを配置するには: lv_obj_align(text, image, LV_ALIGN_OUT_BOTTOM_MID, 0, 10)。

または、テキストをその親の中央に配置するには: lv_obj_align(text, NULL, LV_ALIGN_CENTER, 0, 0)。


lv_obj_align_origo は lv_obj_align と同様に機能しますが、オブジェクトの中心を揃えます。


たとえば、lv_obj_align_origo(btn, image, LV_ALIGN_OUT_BOTTOM_MID, 0, 0) は、ボタンの中心を画像の下に揃えます。


LV_USE_OBJ_REALIGN が lv_conf.h で有効になっている場合、アラインメントのパラメーターはオブジェクトに保存されます。

その後、lv_obj_realign(obj) を呼び出すだけでオブジェクトを再配置できます。

同じパラメーターで lv_obj_align を再度呼び出すことと同じです。

If the alignment happened with lv_obj_align_origo, then it will be used when the object is realigned.


The lv_obj_align_x/y and lv_obj_align_origo_x/y function can be used t align only on one axis.


If lv_obj_set_auto_realign(obj, true) is used the object will be realigned automatically, if its size changes in lv_obj_set_width/height/size() functions. It's very useful when size animations are applied to the object and the original position needs to be kept.


Note that the coordinates of screens can't be changed. Attempting to use these functions on screens will result in undefined behavior.

アライメントが lv_obj_align_origo で発生した場合、オブジェクトが再アライメントされるときに使用されます。


lv_obj_align_x/y および lv_obj_align_origo_x/y 関数は、1 つの軸でのみ整列するために使用できます。


lv_obj_set_auto_realign(obj, true) が使用されている場合、そのサイズが lv_obj_set_width/height/size() 関数で変更された場合、オブジェクトは自動的に再配置されます。 オブジェクトにサイズ アニメーションを適用し、元の位置を維持する必要がある場合に非常に便利です。


画面の座標は変更できないことに注意してください。 これらの関数を画面で使用しようとすると、未定義の動作が発生します。

戻る : Previous


Parents and children

英文 自動翻訳
You can set a new parent for an object with lv_obj_set_parent(obj, new_parent).

To get the current parent, use lv_obj_get_parent(obj).

To get the children of an object, use lv_obj_get_child(obj, child_prev) (from last to first) or lv_obj_get_child_back(obj, child_prev) (from first to last). To get the first child, pass NULL as the second parameter and use the return value to iterate through the children. The function will return NULL if there are no more children. For example:

lv_obj_set_parent(obj, new_parent) を使用して、オブジェクトの新しい親を設定できます。

現在の親を取得するには、lv_obj_get_parent(obj) を使用します。


オブジェクトの子を取得するには、lv_obj_get_child(obj, child_prev) (最後から最初へ) または lv_obj_get_child_back(obj, child_prev) (最初から最後へ) を使用します。 最初の子を取得するには、2 番目のパラメーターとして NULL を渡し、戻り値を使用して子を反復処理します。 子がそれ以上ない場合、関数は NULL を返します。 例えば:

lv_obj_t * child = lv_obj_get_child(parent, NULL);
while(child) {
    /*Do something with "child" */
    child = lv_obj_get_child(parent, child);
}
lv_obj_get_index(obj) tells the number of children on an object.

It is equivalent to the number of younger children in the parent.


lv_obj_count_children_recursive(obj) also tells the number of children but counts children of children recursively.

lv_obj_get_index(obj) は、オブジェクトの子の数を示します。

これは、親の年少の子供の数に相当します。


lv_obj_count_children_recursive(obj) も子の数を示しますが、子の子を再帰的にカウントします。

戻る : Previous


Screens

英文 自動翻訳

When you have created a screen like lv_obj_t * screen = lv_obj_create(NULL, NULL), you can load it with lv_scr_load(screen). The lv_scr_act() function gives you a pointer to the current screen.


If you have more display then it's important to know that these functions operate on the lastly created or the explicitly selected (with lv_disp_set_default) display.


To get an object's screen use the lv_obj_get_screen(obj) function.

lv_obj_t * screen = lv_obj_create(NULL, NULL) のように画面を作成したら、lv_scr_load(screen) で読み込むことができます。 lv_scr_act() 関数は、現在の画面へのポインターを提供します。


より多くのディスプレイがある場合、これらの関数は最後に作成されたディスプレイまたは明示的に選択された (lv_disp_set_default を使用して) ディスプレイで動作することを知っておくことが重要です。


オブジェクトの画面を取得するには、lv_obj_get_screen(obj) 関数を使用します。

戻る : Previous


Events

英文 自動翻訳

To set an event callback for an object, use lv_obj_add_event_cb(obj, event_cb, LV_EVENT_..., user_data),


To manually send an event to an object, use lv_event_send(obj, LV_EVENT_..., param)

Read the Event overview to learn more about events.

オブジェクトにイベントコールバックを設定するには、lv_obj_add_event_cb(obj, event_cb, LV_EVENT_..., user_data)を使い、

イベントを手動でオブジェクトに送信するには、lv_event_send(obj, LV_EVENT_..., param)を使います。

イベントの詳細については、 「イベントの概要」 を参照してください。

戻る : Previous


Styles

英文 自動翻訳

Be sure to read the Style overview. Here only the most essential functions are described.


A new style can be added to an object with the lv_obj_add_style(obj, &new_style, selector) function. selector is an ORed combination of part and state(s). E.g. LV_PART_SCROLLBAR | LV_STATE_PRESSED.

The base objects use LV_PART_MAIN style properties and LV_PART_SCROLLBAR with the typical background style properties.

必ず「スタイルの概要」をお読みください。ここでは、最も重要な機能についてのみ説明します。

lv_obj_add_style(obj, &new_style, selector) 関数で、オブジェクトに新しいスタイルを追加できます。 selector は、part と state の OR の組み合わせです。例:LV_PART_SCROLLBAR | LV_STATE_PRESSED

ベースオブジェクトはLV_PART_MAINスタイルプロパティを使用し、LV_PART_SCROLLBARは典型的な背景スタイルプロパティを使用します。

戻る : Previous


Flags

英文 自動翻訳
 /*Hide on object*/
 lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
 
 /*Make an object non-clickable*/
 lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE);
  • LV_OBJ_FLAG_HIDDEN Make the object hidden. (Like it wasn't there at all)
  • LV_OBJ_FLAG_CLICKABLE Make the object clickable by input devices
  • LV_OBJ_FLAG_CLICK_FOCUSABLE Add focused state to the object when clicked
  • LV_OBJ_FLAG_CHECKABLE Toggle checked state when the object is clicked
  • LV_OBJ_FLAG_SCROLLABLE Make the object scrollable
  • LV_OBJ_FLAG_SCROLL_ELASTIC Allow scrolling inside but with slower speed
  • LV_OBJ_FLAG_SCROLL_MOMENTUM Make the object scroll further when "thrown"
  • LV_OBJ_FLAG_SCROLL_ONE Allow scrolling only one snappable children
  • LV_OBJ_FLAG_SCROLL_CHAIN_HOR Allow propagating the horizontal scroll to a parent
  • LV_OBJ_FLAG_SCROLL_CHAIN_VER Allow propagating the vertical scroll to a parent
  • LV_OBJ_FLAG_SCROLL_CHAIN Simple packaging for (LV_OBJ_FLAG_SCROLL_CHAIN_HOR | LV_OBJ_FLAG_SCROLL_CHAIN_VER)
  • LV_OBJ_FLAG_SCROLL_ON_FOCUS Automatically scroll object to make it visible when focused
  • LV_OBJ_FLAG_SCROLL_WITH_ARROW Allow scrolling the focused object with arrow keys
  • LV_OBJ_FLAG_SNAPPABLE If scroll snap is enabled on the parent it can snap to this object
  • LV_OBJ_FLAG_PRESS_LOCK Keep the object pressed even if the press slid from the object
  • LV_OBJ_FLAG_EVENT_BUBBLE Propagate the events to the parent too
  • LV_OBJ_FLAG_GESTURE_BUBBLE Propagate the gestures to the parent
  • LV_OBJ_FLAG_ADV_HITTEST Allow performing more accurate hit (click) test. E.g. accounting for rounded corners
  • LV_OBJ_FLAG_IGNORE_LAYOUT Make the object positionable by the layouts
  • LV_OBJ_FLAG_FLOATING Do not scroll the object when the parent scrolls and ignore layout
  • LV_OBJ_FLAG_OVERFLOW_VISIBLE Do not clip the children's content to the parent's boundary
  • LV_OBJ_FLAG_LAYOUT_1 Custom flag, free to use by layouts
  • LV_OBJ_FLAG_LAYOUT_2 Custom flag, free to use by layouts
  • LV_OBJ_FLAG_WIDGET_1 Custom flag, free to use by widget
  • LV_OBJ_FLAG_WIDGET_2 Custom flag, free to use by widget
  • LV_OBJ_FLAG_USER_1 Custom flag, free to use by user
  • LV_OBJ_FLAG_USER_2 Custom flag, free to use by user
  • LV_OBJ_FLAG_USER_3 Custom flag, free to use by user
  • LV_OBJ_FLAG_USER_4 Custom flag, free to use by user


Some examples:

 /*Hide on object*/
 lv_obj_add_flag(obj, LV_OBJ_FLAG_HIDDEN);
 
 /*Make an object non-clickable*/
 lv_obj_clear_flag(obj, LV_OBJ_FLAG_CLICKABLE);
 /*オブジェクトを非表示にする*/ 
  lv_obj_add_flag obj  LV_OBJ_FLAG_HIDDEN ;
  
  /*オブジェクトをクリック不可にする*/ 
  lv_obj_clear_flag obj  LV_OBJ_FLAG_CLICKABLE ;
  • LV_OBJ_FLAG_HIDDENオブジェクトを非表示にします。(まったくなかったように)
  • LV_OBJ_FLAG_CLICKABLE入力デバイスでオブジェクトをクリック可能にする
  • LV_OBJ_FLAG_CLICK_FOCUSABLEクリックしたときにフォーカスされた状態をオブジェクトに追加します
  • LV_OBJ_FLAG_CHECKABLEオブジェクトがクリックされたときにチェック状態を切り替えます
  • LV_OBJ_FLAG_SCROLLABLEオブジェクトをスクロール可能にする
  • LV_OBJ_FLAG_SCROLL_ELASTIC内部のスクロールを許可しますが、速度は遅くなります
  • LV_OBJ_FLAG_SCROLL_MOMENTUM「投げられた」ときにオブジェクトをさらにスクロールさせる
  • LV_OBJ_FLAG_SCROLL_ONEスナップ可能な子を1つだけスクロールできるようにする
  • LV_OBJ_FLAG_SCROLL_CHAIN_HOR水平スクロールを親に伝播できるようにする
  • LV_OBJ_FLAG_SCROLL_CHAIN_VER垂直スクロールを親に伝播できるようにする
  • LV_OBJ_FLAG_SCROLL_CHAINオブジェクトを非表示にします。(まったくなかったように)LV_OBJ_FLAG_SCROLL_CHAIN_HOR | LV_OBJ_FLAG_SCROLL_CHAIN_VER( )のシンプルなパッケージ
  • LV_OBJ_FLAG_SCROLL_ON_FOCUSオブジェクトを自動的にスクロールして、フォーカスされたときに表示されるようにします
  • LV_OBJ_FLAG_SCROLL_WITH_ARROWフォーカスされたオブジェクトを矢印キーでスクロールできるようにする
  • LV_OBJ_FLAG_SNAPPABLE親でスクロールスナップが有効になっている場合は、このオブジェクトにスナップできます
  • LV_OBJ_FLAG_PRESS_LOCKプレスがオブジェクトからスライドした場合でも、オブジェクトをプレスしたままにします
  • LV_OBJ_FLAG_EVENT_BUBBLEイベントを親にも伝達します
  • LV_OBJ_FLAG_GESTURE_BUBBLEジェスチャーを親に伝達します
  • LV_OBJ_FLAG_ADV_HITTESTより正確なヒット(クリック)テストの実行を許可します。例:丸みを帯びた角の会計
  • LV_OBJ_FLAG_IGNORE_LAYOUTレイアウトによってオブジェクトを配置可能にします
  • LV_OBJ_FLAG_FLOATING親がスクロールするときにオブジェクトをスクロールせず、レイアウトを無視する
  • LV_OBJ_FLAG_OVERFLOW_VISIBLE子のコンテンツを親の境界にクリップしないでください
  • LV_OBJ_FLAG_LAYOUT_1カスタムフラグ、レイアウトで自由に使用
  • LV_OBJ_FLAG_LAYOUT_2カスタムフラグ、レイアウトで自由に使用
  • LV_OBJ_FLAG_WIDGET_1カスタムフラグ、ウィジェットで無料で使用
  • LV_OBJ_FLAG_WIDGET_2カスタムフラグ、ウィジェットで無料で使用
  • LV_OBJ_FLAG_USER_1カスタムフラグ、ユーザーが自由に使用
  • LV_OBJ_FLAG_USER_2カスタムフラグ、ユーザーが自由に使用
  • LV_OBJ_FLAG_USER_3カスタムフラグ、ユーザーが自由に使用
  • LV_OBJ_FLAG_USER_4カスタムフラグ、ユーザーが自由に使用

いくつかの例:

  /*オブジェクトを非表示にする*/ 
  lv_obj_add_flag obj  LV_OBJ_FLAG_HIDDEN ;
  
  /*オブジェクトをクリック不可にする*/ 
  lv_obj_clear_flag obj  LV_OBJ_FLAG_CLICKABLE ;
戻る : Previous


Groups

英文 自動翻訳

Read the Input devices overview to learn more about Groups.


Objects are added to a group with lv_group_add_obj(group, obj), and you can use lv_obj_get_group(obj) to see which group an object belongs to.

lv_obj_is_focused(obj) returns if the object is currently focused on its group or not. If the object is not added to a group, false will be returned.

グループについての詳細は、入力デバイスの概要を参照してください。

オブジェクトは lv_group_add_obj(group, obj) でグループに追加され、 lv_obj_get_group(obj) でオブジェクトがどのグループに属しているかを確認することができます。

lv_obj_is_focused(obj) は、そのオブジェクトが現在そのグループにフォーカスされているかどうかを返します。オブジェクトがグループに加わっていない場合、falseが返されます。

戻る : Previous


Extended click area

英文 自動翻訳

By default, the objects can be clicked only within their bounding area. However, this can be extended with lv_obj_set_ext_click_area(obj, size).

デフォルトでは、オブジェクトは境界領域内でのみクリックできます。ただし、これは。lv_obj_set_ext_click_area(obj, size)で拡張できます。
戻る : Previous


Events

英文 自動翻訳
  • LV_EVENT_VALUE_CHANGED when the LV_OBJ_FLAG_CHECKABLE flag is enabled and the object clicked (on transition to/from the checked state)
  • LV_EVENT_DRAW_PART_BEGIN and LV_EVENT_DRAW_PART_END is sent for the following types:
    • LV_OBJ_DRAW_PART_RECTANGLE The main rectangle
      • part: LV_PART_MAIN
      • rect_dsc
      • draw_area: the area of the rectangle
    • LV_OBJ_DRAW_PART_BORDER_POST The border if the border_post style property is true
      • part: LV_PART_MAIN
      • rect_dsc
      • draw_area: the area of the rectangle
    • LV_OBJ_DRAW_PART_SCROLLBAR the scrollbars
      • part: LV_PART_SCROLLBAR
      • rect_dsc
      • draw_area: the area of the rectangle

Learn more about Events.

  • LV_EVENT_VALUE_CHANGED : LV_OBJ_FLAG_CHECKABLEフラグが有効になっており、オブジェクトがクリックされた場合 (チェックされた状態との遷移時)
  • LV_EVENT_DRAW_PART_BEGINLV_EVENT_DRAW_PART_END は、以下のタイプで送信されます。
    • LV_OBJ_DRAW_PART_RECTANGLEメインの長方形
      • part: LV_PART_MAIN
      • rect_dsc
      • draw_area:長方形の面積
    • LV_OBJ_DRAW_PART_BORDER_POSTstyleborder_postプロパティがtrue
      • part:LV_PART_MAIN
      • rect_dsc
      • draw_area:長方形の面積
    • LV_OBJ_DRAW_PART_SCROLLBARスクロールバー
      • part:LV_PART_SCROLLBAR
      • rect_dsc
      • draw_area:長方形の面積


イベントの詳細をご覧ください。

戻る : Previous


Keys

英文 自動翻訳

If LV_OBJ_FLAG_CHECKABLE is enabled, LV_KEY_RIGHT and LV_KEY_UP make the object checked, and LV_KEY_LEFT and LV_KEY_DOWN make it unchecked.


If LV_OBJ_FLAG_SCROLLABLE is enabled, but the object is not editable (as declared by the widget class), the arrow keys (LV_KEY_UP, LV_KEY_DOWN, LV_KEY_LEFT, LV_KEY_RIGHT) scroll the object.


If the object can only scroll vertically, LV_KEY_LEFT and LV_KEY_RIGHT will scroll up/down instead, making it compatible with an encoder input device.


See Input devices overview for more on encoder behaviors and the edit mode.

Learn more about Keys.

LV_OBJ_FLAG_CHECKABLE が有効な場合、LV_KEY_RIGHTLV_KEY_UP はオブジェクトをチェック状態にし、LV_KEY_LEFTLV_KEY_DOWN は非チェック状態にする。


LV_OBJ_FLAG_SCROLLABLE が有効で、かつオブジェクトが編集可能でない場合(ウィジェットクラスで宣言されている)、矢印キー(LV_KEY_UP, LV_KEY_DOWN, LV_KEY_LEFT, LV_KEY_RIGHT) はオブジェクトをスクロールさせることができます。


オブジェクトが垂直方向にしかスクロールできない場合、LV_KEY_LEFTLV_KEY_RIGHTが代わりに上下方向にスクロールします。


エンコーダの動作と編集モードについては、入力デバイスの概要を参照してください。


キーについて詳しくはこちら。

戻る : Previous


Example

Base objects with custom styles

英文 自動翻訳

Make an object draggable

LVGL docs example 043.png

戻る : Previous


API

英文 自動翻訳

Typedefs

typedef uint16_t lv_state_t

typedef uint32_t lv_part_t

typedef uint32_t lv_obj_flag_t

typedef struct _lv_obj_t lv_obj_t

Enums

enum [anonymous]

Possible states of a widget. OR-ed values are possible Values:
enumerator LV_STATE_DEFAULT
enumerator LV_STATE_CHECKED
enumerator LV_STATE_FOCUSED
enumerator LV_STATE_FOCUS_KEY
enumerator LV_STATE_EDITED
enumerator LV_STATE_HOVERED
enumerator LV_STATE_PRESSED
enumerator LV_STATE_SCROLLED
enumerator LV_STATE_DISABLED
enumerator LV_STATE_USER_1
enumerator LV_STATE_USER_2
enumerator LV_STATE_USER_3
enumerator LV_STATE_USER_4
enumerator LV_STATE_ANY
Special value can be used in some functions to target all states

enum [anonymous]

The possible parts of widgets. The parts can be considered as the internal building block of the widgets. E.g. slider = background + indicator + knob Note every part is used by every widget Values:
enumerator LV_PART_MAIN
A background like rectangle
enumerator LV_PART_SCROLLBAR
The scrollbar(s)
enumerator LV_PART_INDICATOR
Indicator, e.g. for slider, bar, switch, or the tick box of the checkbox
enumerator LV_PART_KNOB
Like handle to grab to adjust the value
enumerator LV_PART_SELECTED
Indicate the currently selected option or section
enumerator LV_PART_ITEMS
Used if the widget has multiple similar elements (e.g. table cells)
enumerator LV_PART_TICKS
Ticks on scale e.g. for a chart or meter
enumerator LV_PART_CURSOR
Mark a specific place e.g. for text area's cursor or on a chart
enumerator LV_PART_CUSTOM_FIRST
Extension point for custom widgets
enumerator LV_PART_ANY
Special value can be used in some functions to target all parts

enum [anonymous]

On/Off features controlling the object's behavior. OR-ed values are possible Values:
enumerator LV_OBJ_FLAG_HIDDEN
Make the object hidden. (Like it wasn't there at all)
enumerator LV_OBJ_FLAG_CLICKABLE
Make the object clickable by the input devices
enumerator LV_OBJ_FLAG_CLICK_FOCUSABLE
Add focused state to the object when clicked
enumerator LV_OBJ_FLAG_CHECKABLE
Toggle checked state when the object is clicked
enumerator LV_OBJ_FLAG_SCROLLABLE
Make the object scrollable
enumerator LV_OBJ_FLAG_SCROLL_ELASTIC
Allow scrolling inside but with slower speed
enumerator LV_OBJ_FLAG_SCROLL_MOMENTUM
Make the object scroll further when "thrown"
enumerator LV_OBJ_FLAG_SCROLL_ONE
Allow scrolling only one snappable children
enumerator LV_OBJ_FLAG_SCROLL_CHAIN_HOR
Allow propagating the horizontal scroll to a parent
enumerator LV_OBJ_FLAG_SCROLL_CHAIN_VER
Allow propagating the vertical scroll to a parent
enumerator LV_OBJ_FLAG_SCROLL_CHAIN
enumerator LV_OBJ_FLAG_SCROLL_ON_FOCUS
Automatically scroll object to make it visible when focused
enumerator LV_OBJ_FLAG_SCROLL_WITH_ARROW
Allow scrolling the focused object with arrow keys
enumerator LV_OBJ_FLAG_SNAPPABLE
If scroll snap is enabled on the parent it can snap to this object
enumerator LV_OBJ_FLAG_PRESS_LOCK
Keep the object pressed even if the press slid from the object
enumerator LV_OBJ_FLAG_EVENT_BUBBLE
Propagate the events to the parent too
enumerator LV_OBJ_FLAG_GESTURE_BUBBLE
Propagate the gestures to the parent
enumerator LV_OBJ_FLAG_ADV_HITTEST
Allow performing more accurate hit (click) test. E.g. consider rounded corners.
enumerator LV_OBJ_FLAG_IGNORE_LAYOUT
Make the object position-able by the layouts
enumerator LV_OBJ_FLAG_FLOATING
Do not scroll the object when the parent scrolls and ignore layout
enumerator LV_OBJ_FLAG_OVERFLOW_VISIBLE
Do not clip the children's content to the parent's boundary
enumerator LV_OBJ_FLAG_LAYOUT_1
Custom flag, free to use by layouts
enumerator LV_OBJ_FLAG_LAYOUT_2
Custom flag, free to use by layouts
enumerator LV_OBJ_FLAG_WIDGET_1
Custom flag, free to use by widget
enumerator LV_OBJ_FLAG_WIDGET_2
Custom flag, free to use by widget
enumerator LV_OBJ_FLAG_USER_1
Custom flag, free to use by user
enumerator LV_OBJ_FLAG_USER_2
Custom flag, free to use by user
enumerator LV_OBJ_FLAG_USER_3
Custom flag, free to use by user
enumerator LV_OBJ_FLAG_USER_4
Custom flag, free to use by user

enum lv_obj_draw_part_type_t

type field in lv_obj_draw_part_dsc_t if class_p = lv_obj_class Used in LV_EVENT_DRAW_PART_BEGIN and LV_EVENT_DRAW_PART_END Values:
enumerator LV_OBJ_DRAW_PART_RECTANGLE
The main rectangle
enumerator LV_OBJ_DRAW_PART_BORDER_POST
The border if style_border_post = true
enumerator LV_OBJ_DRAW_PART_SCROLLBAR
The scrollbar

Functions

void lv_init(void)

Initialize LVGL library. Should be called before any other LVGL related function.

void lv_deinit(void)

Deinit the 'lv' library Currently only implemented when not using custom allocators, or GC is enabled.

bool lv_is_initialized(void)

Returns whether the 'lv' library is currently initialized

lv_obj_t *lv_obj_create(lv_obj_t *parent)

Create a base object (a rectangle)
Parameters
parent -- pointer to a parent object. If NULL then a screen will be created.
Returns
pointer to the new object

void lv_obj_add_flag(lv_obj_t *obj, lv_obj_flag_t f)

Set one or more flags
Parameters
  • obj -- pointer to an object
  • f -- R-ed values from lv_obj_flag_t to set.

void lv_obj_clear_flag(lv_obj_t *obj, lv_obj_flag_t f)

Clear one or more flags
Parameters
  • obj -- pointer to an object
  • f -- OR-ed values from lv_obj_flag_t to set.

void lv_obj_add_state(lv_obj_t *obj, lv_state_t state)

Add one or more states to the object. The other state bits will remain unchanged. If specified in the styles, transition animation will be started from the previous state to the current.
Parameters
  • obj -- pointer to an object
  • state -- the states to add. E.g LV_STATE_PRESSED | LV_STATE_FOCUSED

void lv_obj_clear_state(lv_obj_t *obj, lv_state_t state)

Remove one or more states to the object. The other state bits will remain unchanged. If specified in the styles, transition animation will be started from the previous state to the current.
Parameters
  • obj -- pointer to an object
  • state -- the states to add. E.g LV_STATE_PRESSED | LV_STATE_FOCUSED

static inline void lv_obj_set_user_data(lv_obj_t *obj, void *user_data)

Set the user_data field of the object
Parameters
  • obj -- pointer to an object
  • user_data -- pointer to the new user_data.

bool lv_obj_has_flag(const lv_obj_t *obj, lv_obj_flag_t f)

Check if a given flag or all the given flags are set on an object.
Parameters
  • obj -- pointer to an object
  • f -- the flag(s) to check (OR-ed values can be used)
Returns
true: all flags are setfalse: not all flags are set

bool lv_obj_has_flag_any(const lv_obj_t *obj, lv_obj_flag_t f)

Check if a given flag or any of the flags are set on an object.
Parameters
  • obj -- pointer to an object
  • f -- the flag(s) to check (OR-ed values can be used)
Returns
true: at lest one flag flag is setfalse: none of the flags are set

lv_state_t lv_obj_get_state(const lv_obj_t *obj)

Get the state of an object
Parameters
obj -- pointer to an object
Returns
the state (OR-ed values from lv_state_t)

bool lv_obj_has_state(const lv_obj_t *obj, lv_state_t state)

Check if the object is in a given state or not.
Parameters
  • obj -- pointer to an object
  • state -- a state or combination of states to check
Returns
true: obj is in statefalse: obj is not in state

void *lv_obj_get_group(const lv_obj_t *obj)

Get the group of the object
Parameters
obj -- pointer to an object
Returns
the pointer to group of the object

static inline void *lv_obj_get_user_data(lv_obj_t *obj)

Get the user_data field of the object
Parameters
obj -- pointer to an object
Returns
the pointer to the user_data of the object

void lv_obj_allocate_spec_attr(lv_obj_t *obj)

Allocate special data for an object if not allocated yet.
Parameters
obj -- pointer to an object

bool lv_obj_check_type(const lv_obj_t *obj, const lv_obj_class_t *class_p)

Check the type of obj.
Parameters
  • obj -- pointer to an object
  • class_p -- a class to check (e.g. lv_slider_class)
Returns
true: class_p is the obj class.

bool lv_obj_has_class(const lv_obj_t *obj, const lv_obj_class_t *class_p)

Check if any object has a given class (type). It checks the ancestor classes too.
Parameters
  • obj -- pointer to an object
  • class_p -- a class to check (e.g. lv_slider_class)
Returns
true: obj has the given class

const lv_obj_class_t *lv_obj_get_class(const lv_obj_t *obj)

Get the class (type) of the object
Parameters
obj -- pointer to an object
Returns
the class (type) of the object

bool lv_obj_is_valid(const lv_obj_t *obj)

Check if any object is still "alive".
Parameters
obj -- pointer to an object
Returns
true: valid

static inline lv_coord_t lv_obj_dpx(const lv_obj_t *obj, lv_coord_t n)

Scale the given number of pixels (a distance or size) relative to a 160 DPI display considering the DPI of the obj's display. It ensures that e.g. lv_dpx(100) will have the same physical size regardless to the DPI of the display.
Parameters
  • obj -- an object whose display's dpi should be considered
  • n -- the number of pixels to scale
Returns
n x current_dpi/160

Variables

const lv_obj_class_t lv_obj_class

Make the base object's class publicly available.

struct _lv_obj_spec_attr_t

#include <lv_obj.h> Special, rarely used attributes. They are allocated automatically if any elements is set. Public Members
struct _lv_obj_t **children
Store the pointer of the children in an array.
uint32_t child_cnt
Number of children
lv_group_t *group_p
struct _lv_event_dsc_t *event_dsc
Dynamically allocated event callback and user data array
lv_point_t scroll
The current X/Y scroll offset
lv_coord_t ext_click_pad
Extra click padding in all direction
lv_coord_t ext_draw_size
EXTend the size in every direction for drawing.
lv_scrollbar_mode_t scrollbar_mode
How to display scrollbars
lv_scroll_snap_t scroll_snap_x
Where to align the snappable children horizontally
lv_scroll_snap_t scroll_snap_y
Where to align the snappable children vertically
lv_dir_t scroll_dir
The allowed scroll direction(s)
uint8_t event_dsc_cnt
Number of event callbacks stored in event_dsc array


struct _lv_obj_t

Public Members
const lv_obj_class_t *class_p
struct _lv_obj_t *parent
_lv_obj_spec_attr_t *spec_attr
_lv_obj_style_t *styles
void *user_data
lv_area_t coords
lv_obj_flag_t flags
lv_state_t state
uint16_t layout_inv
uint16_t scr_layout_inv
uint16_t skip_trans
uint16_t style_cnt
uint16_t h_layout
uint16_t w_layout


Typedef

typedef uint16_t lv_state_t

typedef uint32_t lv_part_t

typedef uint32_t lv_obj_flag_t

typedef struct _lv_obj_t lv_obj_t

列挙型

列挙型[匿名]

ウィジェットの可能な状態。OR-ed値が可能です 値:
列挙子LV_STATE_DEFAULT
列挙子LV_STATE_CHECKED
列挙子LV_STATE_FOCUSED
列挙子LV_STATE_FOCUS_KEY
列挙子LV_STATE_EDITED
列挙子LV_STATE_HOVERED
列挙子LV_STATE_PRESSED
列挙子LV_STATE_SCROLLED
列挙子LV_STATE_DISABLED
列挙子LV_STATE_USER_1
列挙子LV_STATE_USER_2
列挙子LV_STATE_USER_3
列挙子LV_STATE_USER_4
列挙子LV_STATE_ANY
一部の関数で特別な値を使用して、すべての状態をターゲットにすることができます

列挙型[匿名]

ウィジェットの可能な部分。パーツは、ウィジェットの内部構成要素と見なすことができます。例:スライダー=背景+インジケーター+ノブすべてのパーツがすべてのウィジェットで使用されていることに注意してください 値:
列挙子LV_PART_MAIN
長方形のような背景
列挙子LV_PART_SCROLLBAR
スクロールバー
列挙子LV_PART_INDICATOR
インジケーター(スライダー、バー、スイッチ、チェックボックスのチェックボックスなど)
列挙子LV_PART_KNOB
ハンドルのようにつかんで値を調整します
列挙子LV_PART_SELECTED
現在選択されているオプションまたはセクションを示します
列挙子LV_PART_ITEMS
ウィジェットに複数の類似した要素(テーブルセルなど)がある場合に使用されます
列挙子LV_PART_TICKS
チャートやメーターなどのスケールの目盛り
列挙子LV_PART_CURSOR
テキスト領域のカーソルやチャートなど、特定の場所をマークします
列挙子LV_PART_CUSTOM_FIRST
カスタムウィジェットの拡張ポイント
列挙子LV_PART_ANY
一部の関数で特別な値を使用して、すべてのパーツをターゲットにすることができます

列挙型[匿名]

オブジェクトの動作を制御するオン/オフ機能。OR-ed値が可能です 値:
列挙子LV_OBJ_FLAG_HIDDEN
オブジェクトを非表示にします。(まったくなかったように)
列挙子LV_OBJ_FLAG_CLICKABLE
入力デバイスでオブジェクトをクリック可能にする
列挙子LV_OBJ_FLAG_CLICK_FOCUSABLE
クリックしたときにフォーカスされた状態をオブジェクトに追加します
列挙子LV_OBJ_FLAG_CHECKABLE
オブジェクトがクリックされたときにチェック状態を切り替えます
列挙子LV_OBJ_FLAG_SCROLLABLE
オブジェクトをスクロール可能にする
列挙子LV_OBJ_FLAG_SCROLL_ELASTIC
内部のスクロールを許可しますが、速度は遅くなります
列挙子LV_OBJ_FLAG_SCROLL_MOMENTUM
「投げられた」ときにオブジェクトをさらにスクロールさせる
列挙子LV_OBJ_FLAG_SCROLL_ONE
スナップ可能な子を1つだけスクロールできるようにする
列挙子LV_OBJ_FLAG_SCROLL_CHAIN_HOR
水平スクロールを親に伝播できるようにする
列挙子LV_OBJ_FLAG_SCROLL_CHAIN_VER
垂直スクロールを親に伝播できるようにする
列挙子LV_OBJ_FLAG_SCROLL_CHAIN
列挙子LV_OBJ_FLAG_SCROLL_ON_FOCUS
オブジェクトを自動的にスクロールして、フォーカスされたときに表示されるようにします
列挙子LV_OBJ_FLAG_SCROLL_WITH_ARROW
フォーカスされたオブジェクトを矢印キーでスクロールできるようにする
列挙子LV_OBJ_FLAG_SNAPPABLE
親でスクロールスナップが有効になっている場合は、このオブジェクトにスナップできます
列挙子LV_OBJ_FLAG_PRESS_LOCK
プレスがオブジェクトからスライドした場合でも、オブジェクトをプレスしたままにします
列挙子LV_OBJ_FLAG_EVENT_BUBBLE
イベントを親にも伝達します
列挙子LV_OBJ_FLAG_GESTURE_BUBBLE
ジェスチャーを親に伝達します
列挙子LV_OBJ_FLAG_ADV_HITTEST
より正確なヒット(クリック)テストの実行を許可します。たとえば、角を丸くすることを検討してください。
列挙子LV_OBJ_FLAG_IGNORE_LAYOUT
レイアウトによってオブジェクトを配置可能にする
列挙子LV_OBJ_FLAG_FLOATING
親がスクロールするときにオブジェクトをスクロールせず、レイアウトを無視する
列挙子LV_OBJ_FLAG_OVERFLOW_VISIBLE
子のコンテンツを親の境界にクリップしないでください
列挙子LV_OBJ_FLAG_LAYOUT_1
カスタムフラグ、レイアウトで自由に使用
列挙子LV_OBJ_FLAG_LAYOUT_2
カスタムフラグ、レイアウトで自由に使用
列挙子LV_OBJ_FLAG_WIDGET_1
カスタムフラグ、ウィジェットで無料で使用
列挙子LV_OBJ_FLAG_WIDGET_2
カスタムフラグ、ウィジェットで無料で使用
列挙子LV_OBJ_FLAG_USER_1
カスタムフラグ、ユーザーが自由に使用
列挙子LV_OBJ_FLAG_USER_2
カスタムフラグ、ユーザーが自由に使用
列挙子LV_OBJ_FLAG_USER_3
カスタムフラグ、ユーザーが自由に使用
列挙子LV_OBJ_FLAG_USER_4
カスタムフラグ、ユーザーが自由に使用

列挙型lv_obj_draw_part_type_t

type使用されるlv_obj_draw_part_dsc_t場合のフィールドと値:class_p = lv_obj_classグループLV_EVENT_DRAW_PART_BEGINグループLV_EVENT_DRAW_PART_END
列挙子LV_OBJ_DRAW_PART_RECTANGLE
メインの長方形
列挙子LV_OBJ_DRAW_PART_BORDER_POST
style_border_post=trueの場合の境界線
列挙子LV_OBJ_DRAW_PART_SCROLLBAR
スクロールバー

機能

void lv_init(void)

LVGLライブラリを初期化します。他のLVGL関連関数の前に呼び出す必要があります。

void lv_deinit(void)

'lv'ライブラリを無効にする現在、カスタムアロケータを使用していない場合、またはGCが有効になっている場合にのみ実装されます。

bool lv_is_initialized(void)

'lv'ライブラリが現在初期化されているかどうかを返します

lv_obj_t * lv_obj_create(lv_obj_t * parent)

ベースオブジェクト(長方形)を作成します
パラメーター
parent-親オブジェクトへのポインタ。NULLの場合、画面が作成されます。
戻り値
新しいオブジェクトへのポインタ

void lv_obj_add_flag(lv_obj_t * obj、lv_obj_flag_t f)

1つ以上のフラグを設定します
パラメーター
  • obj-オブジェクトへのポインタ
  • f-からの値をR-edしlv_obj_flag_tて設定します。

void lv_obj_clear_flag(lv_obj_t * obj、lv_obj_flag_t f)

1つ以上のフラグをクリアします
パラメーター
  • obj-オブジェクトへのポインタ
  • f-からのOR値lv_obj_flag_tを設定します。

void lv_obj_add_state(lv_obj_t * obj、lv_state_t state)

1つ以上の状態をオブジェクトに追加します。他の状態ビットは変更されません。スタイルで指定されている場合、遷移アニメーションは前の状態から現在の状態に開始されます。
パラメーター
  • obj-オブジェクトへのポインタ
  • state-追加する状態例えばLV_STATE_PRESSED | LV_STATE_FOCUSED

void lv_obj_clear_state(lv_obj_t * obj、lv_state_t state)

オブジェクトの1つ以上の状態を削除します。他の状態ビットは変更されません。スタイルで指定されている場合、遷移アニメーションは前の状態から現在の状態に開始されます。
パラメーター
  • obj-オブジェクトへのポインタ
  • state-追加する状態例えばLV_STATE_PRESSED | LV_STATE_FOCUSED

static inline void lv_obj_set_user_data(lv_obj_t * obj、void * user_data)

オブジェクトのuser_dataフィールドを設定します
パラメーター
  • obj-オブジェクトへのポインタ
  • user_data-新しいuser_dataへのポインタ。

bool lv_obj_has_flag(const lv_obj_t * obj、lv_obj_flag_t f)

指定されたフラグまたは指定されたすべてのフラグがオブジェクトに設定されているかどうかを確認します。
パラメーター
  • obj-オブジェクトへのポインタ
  • f-チェックするフラグ(ORされた値を使用できます)
戻り値
true:すべてのフラグが設定されていますfalse:すべてのフラグが設定されているわけではありません

bool lv_obj_has_flag_any(const lv_obj_t * obj、lv_obj_flag_t f)

特定のフラグまたはいずれかのフラグがオブジェクトに設定されているかどうかを確認します。
パラメーター
  • obj-オブジェクトへのポインタ
  • f-チェックするフラグ(ORされた値を使用できます)
戻り値
true:少なくとも1つのフラグフラグが設定されていますfalse:どのフラグも設定されていません

lv_state_t lv_obj_get_state(const lv_obj_t * obj)

オブジェクトの状態を取得します
パラメーター
obj-オブジェクトへのポインタ
戻り値
状態(からのOR-ed値lv_state_t

bool lv_obj_has_state(const lv_obj_t * obj、lv_state_t state)

オブジェクトが特定の状態にあるかどうかを確認します。
パラメーター
  • obj-オブジェクトへのポインタ
  • 状態-チェックする状態または状態の組み合わせ
戻り値
true:objstatefalse:objはないstate

void * lv_obj_get_group(const lv_obj_t * obj)

オブジェクトのグループを取得します
パラメーター
obj-オブジェクトへのポインタ
戻り値
オブジェクトのグループへのポインタ

static inline void * lv_obj_get_user_data(lv_obj_t * obj)

オブジェクトのuser_dataフィールドを取得します
パラメーター
obj-オブジェクトへのポインタ
戻り値
オブジェクトのuser_dataへのポインタ

void lv_obj_allocate_spec_attr(lv_obj_t * obj)

まだ割り当てられていない場合は、オブジェクトに特別なデータを割り当てます。
パラメーター
obj-オブジェクトへのポインタ

bool lv_obj_check_type(const lv_obj_t * obj、const lv_obj_class_t * class_p)

objのタイプを確認してください。
パラメーター
  • obj-オブジェクトへのポインタ
  • class_p-チェックするクラス(例lv_slider_class
戻り値
true:クラスですclass_pobjグループ

bool lv_obj_has_class(const lv_obj_t * obj、const lv_obj_class_t * class_p)

オブジェクトに特定のクラス(タイプ)があるかどうかを確認します。祖先クラスもチェックします。
パラメーター
  • obj-オブジェクトへのポインタ
  • class_p-チェックするクラス(例lv_slider_class
戻り値
true:obj指定されたクラスがあります

const lv_obj_class_t * lv_obj_get_class(const lv_obj_t * obj)

オブジェクトのクラス(タイプ)を取得します
パラメーター
obj-オブジェクトへのポインタ
戻り値
オブジェクトのクラス(タイプ)

bool lv_obj_is_valid(const lv_obj_t * obj)

オブジェクトがまだ「生きている」かどうかを確認します。
パラメーター
obj-オブジェクトへのポインタ
戻り値
true:有効

静的インラインlv_coord_tlv_obj_dpx(const lv_obj_t * obj、lv_coord_t n)

のディスプレイのDPIを考慮して、160 DPIディスプレイを基準にして指定されたピクセル数(距離またはサイズ)をスケーリングしobjます。これにより、たとえばlv_dpx(100)、ディスプレイのDPIに関係なく、同じ物理サイズになります。
パラメーター
  • obj-ディスプレイのdpiを考慮する必要があるオブジェクト
  • n-スケーリングするピクセル数
戻り値
n x current_dpi/160

変数

const lv_obj_class_t lv_obj_class

基本オブジェクトのクラスを公開します。

struct _lv_obj_spec_attr_t

#include <lv_obj.h>特別な、めったに使用されない属性。要素が設定されている場合、それらは自動的に割り当てられます。パブリックメンバー
struct_lv_obj_t **子供
子のポインタを配列に格納します。
uint32_t child_cnt
子どもの数
lv_group_t * group_p
struct _lv_event_dsc_t * event_dsc
動的に割り当てられたイベントコールバックとユーザーデータ配列
lv_point_tスクロール
現在のX/Yスクロールオフセット
lv_coord_t ext_click_pad
全方向に余分なクリックパディング
lv_coord_t ext_draw_size
描画するためにすべての方向にサイズを拡張します。
lv_scrollbar_mode_t scrollbar_mode
スクロールバーの表示方法
lv_scroll_snap_t scroll_snap_x
スナップ可能な子を水平に配置する場所
lv_scroll_snap_t scroll_snap_y
スナップ可能な子を垂直に配置する場所
lv_dir_t scroll_dir
許可されるスクロール方向
uint8_t event_dsc_cnt
グループevent_dsc配列に格納されているイベントコールバックの数

struct _lv_obj_t

パブリックメンバー
const lv_obj_class_t * class_p
struct _lv_obj_t * parent
_lv_obj_spec_attr_t * spec_attr
_lv_obj_style_t * styles
void * user_data
lv_area_t座標
lv_obj_flag_tフラグ
lv_state_t状態
uint16_t layout_inv
uint16_t scr_layout_inv
uint16_t skip_trans
uint16_t style_cnt
uint16_t h_layout
uint16_t w_layout


戻る : Previous