﻿<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=%E5%88%A9%E7%94%A8%E8%80%85%3AJulianeisel%2Fui-widgets</id>
	<title>利用者:Julianeisel/ui-widgets - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.blender.jp/index.php?action=history&amp;feed=atom&amp;title=%E5%88%A9%E7%94%A8%E8%80%85%3AJulianeisel%2Fui-widgets"/>
	<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Julianeisel/ui-widgets&amp;action=history"/>
	<updated>2026-05-12T03:08:14Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Julianeisel/ui-widgets&amp;diff=149989&amp;oldid=prev</id>
		<title>Yamyam: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Julianeisel/ui-widgets&amp;diff=149989&amp;oldid=prev"/>
		<updated>2018-06-28T21:14:31Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;2018年6月28日 (木) 21:14時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Yamyam</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Julianeisel/ui-widgets&amp;diff=149988&amp;oldid=prev</id>
		<title>wiki&gt;Julianeisel: /* Interface Widgets */</title>
		<link rel="alternate" type="text/html" href="https://wiki.blender.jp/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Julianeisel/ui-widgets&amp;diff=149988&amp;oldid=prev"/>
		<updated>2016-03-10T18:00:03Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Interface Widgets&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Interface Widgets =&lt;br /&gt;
&lt;br /&gt;
{{NiceTip|Not used yet|Most of the stuff described here is not valid yet. It's the result of some experimenting which is on hold now.}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
[[File:Widget_refactor_doc_01.png|right|500px]]&lt;br /&gt;
&lt;br /&gt;
Blender's interface widget code is kept quite separated from the other UI code. Main reason for this is to make later refactors or rewrites easier. &amp;lt;br/&amp;gt;&lt;br /&gt;
Also, in future it might be interesting to see if we can modularize the code even more so that they can be made a standalone library which can be reused in other applications (e.g. Blenderplayer, Cycles standalone).&lt;br /&gt;
&lt;br /&gt;
Communication with the other UI code happens via the [[User:Julianeisel/ui-widgets#Widget_API|widget API]] in interface_widgets.c&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Draw-styles:'''&lt;br /&gt;
&lt;br /&gt;
An important part in the widget code architecture is the support for draw-styles. The idea behind draw-styles is to provide an option for the user to tweak the visual widget style for his personal preference (more info [https://developer.blender.org/T45025 here]). For each draw-style, the widget drawing can be completely different.&lt;br /&gt;
To support this properly, each draw-style has its own file (drawstyle_xxx.c) in which the drawing for each widget is defined.&lt;br /&gt;
&lt;br /&gt;
{{clr}}&lt;br /&gt;
&lt;br /&gt;
== Widget API ==&lt;br /&gt;
Widget API functions for external access&lt;br /&gt;
&lt;br /&gt;
=== WidgetTypeInit ===&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Initializes uiWidgetType based on the [[User:Julianeisel/ui-widgets#Widget_types|widget type]].&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
&lt;br /&gt;
{|width=100%&lt;br /&gt;
!|Parameter&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|const uiWidgetTypeEnum type&lt;br /&gt;
|[[User:Julianeisel/ui-widgets#Widget_types|Widget type]] to initialize&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Returns:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The initialized uiWidgetType.&lt;br /&gt;
&lt;br /&gt;
=== WidgetDraw ===&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Handles and triggers widget main draw routine.&lt;br /&gt;
* passing NULL for but disables calling custom draw callback and text callback,&lt;br /&gt;
* passing NULL for fstyle or str disables calling text callback&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
{|width=100%&lt;br /&gt;
!|Parameter&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|uiWidgetType *wt&lt;br /&gt;
|uiWidgetType initialized by WidgetTypeInit&lt;br /&gt;
|-&lt;br /&gt;
|uiBut *but&lt;br /&gt;
|uiBut version of this widget (yep, this is bad, we should get rid of it)&lt;br /&gt;
|-&lt;br /&gt;
|rcti *rect&lt;br /&gt;
|Rectangle to use for drawing&lt;br /&gt;
|-&lt;br /&gt;
|int state&lt;br /&gt;
|Flags for the current state of the widget&lt;br /&gt;
|-&lt;br /&gt;
|int roundboxalign&lt;br /&gt;
|Flags to set which corners will become rounded (e.g. UI_CNR_TOP_LEFT, UI_CNR_BOTTOM_RIGHT, UI_CNR_NONE, UI_CNR_ALL)&lt;br /&gt;
|-&lt;br /&gt;
|const int iconid&lt;br /&gt;
|Index of the icon to draw&lt;br /&gt;
|-&lt;br /&gt;
|const char *str&lt;br /&gt;
|String to use for text drawing&lt;br /&gt;
|-&lt;br /&gt;
|const bool use_text_blend&lt;br /&gt;
|Enables transparency for text drawing&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- template for adding new function&lt;br /&gt;
&lt;br /&gt;
=== Some Function Name ===&lt;br /&gt;
&lt;br /&gt;
'''Description:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
Some description&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
{|width=100%&lt;br /&gt;
!|Parameter&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|some parameter&lt;br /&gt;
|some description&lt;br /&gt;
|-&lt;br /&gt;
|another parameter&lt;br /&gt;
|another description&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Returns:'''&amp;lt;br/&amp;gt;&lt;br /&gt;
The initialized something.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
{|{{css/prettytable}}&lt;br /&gt;
!|File&lt;br /&gt;
!|Description&lt;br /&gt;
|-&lt;br /&gt;
|interface/interface_widgets.c&lt;br /&gt;
|Place for transition between uiBut and uiWidget&lt;br /&gt;
|-&lt;br /&gt;
|interface/widgets/widgets.c&lt;br /&gt;
|Widget API and internal functions&lt;br /&gt;
|-&lt;br /&gt;
|interface/widgets/widgets.h&lt;br /&gt;
|Widget API and internal functions&lt;br /&gt;
|-&lt;br /&gt;
|interface/widgets/widgets_draw/drawstyle_xxx.c&lt;br /&gt;
|Widget drawing functions for the given draw-style (XXX link to draw-style docs)&lt;br /&gt;
|-&lt;br /&gt;
|interface/widgets/widgets_draw/widgets_draw.c&lt;br /&gt;
|Shared low-level widget drawing functions&lt;br /&gt;
|-&lt;br /&gt;
|interface/widgets/widgets_draw/widgets_draw_text.c&lt;br /&gt;
|Shared low-level widget text drawing functions&lt;br /&gt;
|-&lt;br /&gt;
|interface/widgets/widgets_draw/widgets_draw_intern.h&lt;br /&gt;
|Internal header for shared low-level widget drawing functions&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Widget types ==&lt;br /&gt;
&lt;br /&gt;
Note: The below described drawing characteristics refer to the &amp;quot;Classic&amp;quot; draw-style. Since drawing can be completely different between draw-styles, there might be deviations.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!|Type&lt;br /&gt;
!|Description&lt;br /&gt;
!|Image&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_BOX&lt;br /&gt;
|Container widget for combining other widgets to create a visual grouping&lt;br /&gt;
|[[File:Box.png]]&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_CHECKBOX&lt;br /&gt;
|Widget for boolean options drawn with a checkbox and text&lt;br /&gt;
|[[File:Checkbox.png]]&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_COLORBAND&lt;br /&gt;
|Widget for creating custom color blends&lt;br /&gt;
|[[File:Colorband.png]]&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_EXEC&lt;br /&gt;
|Button for executing operators&lt;br /&gt;
|[[File:Exec.png]]&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_HSV_CIRCLE&lt;br /&gt;
|Round color picker widget&lt;br /&gt;
|[[File:Hsv_picker_circ.png]]&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_HSV_CUBE&lt;br /&gt;
|Rectangular color picker widget&lt;br /&gt;
|[[File:Hsv_picker_cube.png]]&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_HSV_VERT&lt;br /&gt;
|Vertical color picker widget&lt;br /&gt;
|[[File:Hsv_picker_vert.png]]&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_ICON&lt;br /&gt;
|Similar to label widget, but drawn embossed if it's animated, driven, etc.&lt;br /&gt;
|[[File:Icon.png]]&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_LABEL&lt;br /&gt;
|Widget for displaying text and/or icon without handling&lt;br /&gt;
|[[File:Label.png]]&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_LINK&lt;br /&gt;
|A bezier link line&lt;br /&gt;
|[[File:Link.png]]&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_LISTITEM&lt;br /&gt;
|Item in an uiList&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_LISTSCROLL&lt;br /&gt;
|Scrollbar widget for uiLists&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_MENU_BACK&lt;br /&gt;
|Floating region background (menus, popups)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_MENU_ICON_RADIO&lt;br /&gt;
|Menu button with preview image/icon, drawing similar to radio buttons&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_MENU_ITEM&lt;br /&gt;
|Item in an open menu &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_MENU_ITEM_PREVIEW&lt;br /&gt;
|Item in an open menu with preview image/icon&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_MENU_ITEM_RADIAL&lt;br /&gt;
|Pie menu item button&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_MENU_LABEL&lt;br /&gt;
|Text item in an open menu without handling&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_MENU_NODE_LINK&lt;br /&gt;
|Menu button with slightly different drawing to indicate that it's linked to a node&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_MENU_RADIO&lt;br /&gt;
|Menu button, drawing similar to radio widgets&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_NAME&lt;br /&gt;
|Widget for text editing&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_NUMBER&lt;br /&gt;
|A button for displaying and tweaking numeric data&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_PROGRESSBAR&lt;br /&gt;
|Widget for visualizing progress during rendering or baking&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_PULLDOWN&lt;br /&gt;
|Button for opening pulldown menus&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_RADIO&lt;br /&gt;
|A button that can be grouped with other radio buttons, activating one deactivates the others in the group (except if shift is held)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_REGULAR&lt;br /&gt;
|Fallback widget drawing, for testing, shouldn't be used apart from that&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_SCROLL_BACK&lt;br /&gt;
|Outer scrollbar part&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_SCROLL_INNER&lt;br /&gt;
|Draggable inner scrollbar part&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_SEPARATOR&lt;br /&gt;
|Horizontal separator line in menus&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_SLIDER&lt;br /&gt;
|Horizontal widget for dragging factor values&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_SWATCH&lt;br /&gt;
|Color choose widget&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_TOOLTIP&lt;br /&gt;
|Widget for tooltip background&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_UNITVEC&lt;br /&gt;
|Widget for manipulating 3 dimensional vectors&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|UI_WTYPE_TOGGLE&lt;br /&gt;
|Widget similar to radio button, but using different drawing&lt;br /&gt;
|[[File:Toggle.png]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>wiki&gt;Julianeisel</name></author>
		
	</entry>
</feed>