*/}}

la_resource.c 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. #include "la_5.h"
  2. extern LA MAIN;
  3. extern struct _tnsMain *T;
  4. laUiType *_LA_UI_FIXED_GROUP;
  5. laUiType *_LA_UI_TAB;
  6. laUiType _LA_UI_CONDITION; //NO PTR
  7. laUiType _LA_UI_CONDITION_END; //NO PTR
  8. laUiType _LA_UI_CONDITION_ELSE; //NO PTR
  9. laUiType _LA_UI_ROW_BEGIN; //NO PTR
  10. laUiType _LA_UI_ROW_END; //NO PTR
  11. laUiType *_LA_UI_COLLECTION;
  12. laUiType *_LA_UI_COLLECTION_ITEM;
  13. laUiType *_LA_UI_COLLECTION_SELECTOR;
  14. laUiType *_LA_UI_COLLECTION_SINGLE;
  15. laUiType *_LA_UI_BUTTON;
  16. laUiType *_LA_UI_LABEL;
  17. laUiType *_LA_UI_INT;
  18. laUiType *_LA_UI_VALUE_METER;
  19. laUiType *_LA_UI_VALUE_METER_2D;
  20. laUiType *_LA_UI_FLOAT;
  21. laUiType *_LA_UI_FLOAT_COLOR;
  22. laUiType *_LA_UI_FLOAT_COLOR_HCY;
  23. laUiType *_LA_UI_ENUM_SELECTOR;
  24. laUiType *_LA_UI_MENU_ROOT;
  25. laUiType *_LA_UI_CONDITION_TOGGLE;
  26. laUiType *_LA_UI_STRING;
  27. laUiType *_LA_UI_STRING_MULTI;
  28. laUiType *_LA_UI_ALIGN;
  29. laUiType *_LA_UI_CANVAS;
  30. laUiType *_LA_UI_COLUMN_ADJUSTER;
  31. laUiType *_LA_UI_SYMBOL;
  32. laUiType *_LA_UI_COLUMN_VIEWER;
  33. laUiType *_LA_UI_NODE_SOCKET;
  34. laUiType *_LA_UI_HEIGHT_ADJUSTER;
  35. laUiType *_LA_UI_RAW;
  36. laUiDefineFunc _LA_SUBPROP_DONT_CARE;
  37. laBoxedTheme *_LA_THEME_PANEL;
  38. laBoxedTheme *_LA_THEME_VALUATOR;
  39. laBoxedTheme *_LA_THEME_BUTTON;
  40. laBoxedTheme *_LA_THEME_STRING;
  41. laBoxedTheme *_LA_THEME_SELECTOR;
  42. laBoxedTheme *_LA_THEME_COLLECTION_SELECTOR;
  43. laBoxedTheme *_LA_THEME_LABEL;
  44. laBoxedTheme *_LA_THEME_TAB;
  45. laBoxedTheme *_LA_THEME_COLLECTION_GROUP;
  46. laBoxedTheme *_LA_THEME_COLLECTION_ITEM;
  47. laBoxedTheme *_LA_THEME_FLOATING_PANEL;
  48. laBoxedTheme *_LA_THEME_3D_VIEW;
  49. laBoxedTheme *_LA_THEME_2D_VIEW;
  50. laBoxedTheme *_LA_THEME_SOCKET;
  51. laProp *_LA_PROP_PANEL;
  52. laProp *_LA_PROP_BLOCK;
  53. laProp *_LA_PROP_WINDOW;
  54. laProp *_LA_PROP_UI_ITEM;
  55. laProp *_LA_PROP_FAILED_ITEM;
  56. laProp *_LA_PROP_TRASH_ITEM;
  57. laProp *_LA_PROP_NODE_GRAPH;
  58. laPropContainer *_LA_PROP_3D_EXTRA;
  59. laPropContainer *_LA_PROP_2D_EXTRA;
  60. laPropContainer *_LA_PROP_FILE_BROWSER;
  61. laProp _P_LA_USE_INSTANCE_ONLY;
  62. void la_RegisterMainOperators(){
  63. la_RegisterUiOperatorsBasic();
  64. la_RegisterViewerOperators();
  65. la_RegisterBuiltinOperators();
  66. }
  67. void la_RegisterMainUiTypes(){
  68. la_RegisterUiTypesBasic();
  69. la_RegisterUiTypesViewerWidgets();
  70. }
  71. void la_RegisterWindowKeys(){
  72. laKeyMapper* km=&MAIN.KeyMap;
  73. laAssignNewKey(km, 0, "LA_udf_read", 0, LA_KEY_CTRL, LA_KEY_DOWN, 'o', 0);
  74. laAssignNewKey(km, 0, "LA_managed_save", 0, LA_KEY_CTRL, LA_KEY_DOWN, 's', "quiet=true;");
  75. laAssignNewKey(km, 0, "LA_managed_save", 0, LA_KEY_CTRL|LA_KEY_SHIFT, LA_KEY_DOWN, 's', 0);
  76. laAssignNewKey(km, 0, "LA_manage_udf", 0, LA_KEY_SHIFT, LA_KEY_DOWN, 'r', 0);
  77. laAssignNewKey(km, 0, "LA_switch_layout", 0, LA_KEY_CTRL, LA_KEY_DOWN, LA_KEY_ARRLEFT, "reverse=true;");
  78. laAssignNewKey(km, 0, "LA_switch_layout", 0, LA_KEY_CTRL, LA_KEY_DOWN, LA_KEY_ARRRIGHT, 0);
  79. laAssignNewKey(km, 0, "LA_system_paste", 0, LA_KEY_CTRL, LA_KEY_DOWN, 'v', 0);
  80. laAssignNewKey(km, 0, "LA_undo", 0, LA_KEY_CTRL, LA_KEY_DOWN, 'z', 0);
  81. laAssignNewKey(km, 0, "LA_redo", 0, LA_KEY_CTRL|LA_KEY_SHIFT, LA_KEY_DOWN, 'z', 0);
  82. }
  83. void la_RegisterMainThemes(){
  84. laBoxedTheme *bt;
  85. strSafeSet(&MAIN.example_string,
  86. "hello(){\n"
  87. " world!\n"
  88. " This is a LaGUI application 🤔\n"
  89. " Now with monospace font support :D\n And when mixing characters, advances would be correct.\n"
  90. "}");
  91. la_UDFAppendSharedTypePointer("BT Panel", &_LA_THEME_PANEL);
  92. la_UDFAppendSharedTypePointer("BT Floating Panel", &_LA_THEME_FLOATING_PANEL);
  93. la_UDFAppendSharedTypePointer("BT Valuator", &_LA_THEME_VALUATOR);
  94. la_UDFAppendSharedTypePointer("BT Button", &_LA_THEME_BUTTON);
  95. la_UDFAppendSharedTypePointer("BT String", &_LA_THEME_STRING);
  96. la_UDFAppendSharedTypePointer("BT Selector", &_LA_THEME_SELECTOR);
  97. la_UDFAppendSharedTypePointer("BT Collection Selector", &_LA_THEME_COLLECTION_SELECTOR);
  98. la_UDFAppendSharedTypePointer("BT Label", &_LA_THEME_LABEL);
  99. la_UDFAppendSharedTypePointer("BT Tab", &_LA_THEME_TAB);
  100. la_UDFAppendSharedTypePointer("BT Collection Group", &_LA_THEME_COLLECTION_GROUP);
  101. la_UDFAppendSharedTypePointer("BT Collection Item", &_LA_THEME_COLLECTION_ITEM);
  102. la_UDFAppendSharedTypePointer("BT 3D Viewer", &_LA_THEME_3D_VIEW);
  103. la_UDFAppendSharedTypePointer("BT 2D Viewer", &_LA_THEME_2D_VIEW);
  104. la_UDFAppendSharedTypePointer("BT Socket", &_LA_THEME_SOCKET);
  105. laTheme *t;
  106. t = laDesignTheme("Classic Light", "YimingWu");{
  107. LA_SET3(t->Color, 0.58,0.58,0.55);
  108. LA_SET3(t->AccentColor, 0.1,0.1,0.4);
  109. t->InactiveMix=0.7; t->InactiveSaturation=0.2;
  110. t->CursorAlpha=0.9; t->SelectionAlpha=0.3;
  111. t->WireBrightness=0.5; t->WireSaturation=0.6; t->WireTransparency=0.65;
  112. t->EdgeBrightness=0.65; t->EdgeTransparency=0.8; t->VertexBrightness=0.65, t->VertexTransparency=0.9;
  113. t->SelectedFaceTransparency=0.6,t->SelectedEdgeTransparency=0.9, t->SelectedVertexTransparency=1.0;
  114. laDesignBoxedTheme(t, "Panel",&_LA_THEME_PANEL,
  115. 0.85, 0.5, 0.2, 0.15, 0.1, 0.9, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  116. laDesignBoxedTheme(t, "Floating Panel",&_LA_THEME_FLOATING_PANEL,
  117. 0.95, 0.8, 0.1, 0.15, 0.1, 0.9, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  118. laDesignBoxedTheme(t, "Valuator",&_LA_THEME_VALUATOR,
  119. 0.8, 0.5, 0.3, 0.2, 0.1, 0.9, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  120. laDesignBoxedTheme(t, "Button",&_LA_THEME_BUTTON,
  121. 0.97, 0.2, 0.3, 0.2, 0.9, 0.95, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  122. laDesignBoxedTheme(t, "String",&_LA_THEME_STRING,
  123. 0.9, 0.95, 0.3, 0.2, 0.1, 0.95, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  124. laDesignBoxedTheme(t, "Selector",&_LA_THEME_SELECTOR,
  125. 0.85, 0.7, 0.3, 0.2, 0.1, 0.95, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  126. laDesignBoxedTheme(t, "Collection Selector",&_LA_THEME_COLLECTION_SELECTOR,
  127. 0.85, 0.7, 0.3, 0.2, 0.1, 0.95, -0.11, 1, -0.11, -0.11, 0.11, 0.11, 0.11, 0.11);
  128. laDesignBoxedTheme(t, "Label",&_LA_THEME_LABEL,
  129. 0.7, 0.8, 0.3, 0.1, 0.05, 0.95, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  130. laDesignBoxedTheme(t, "Tab",&_LA_THEME_TAB,
  131. 0.9, 0.8, 0.2, 0.1, 0.7, 0.9, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  132. laDesignBoxedTheme(t, "Socket",&_LA_THEME_SOCKET,
  133. 0.97, 0.2, 0.3, 0.2, 0.9, 0.95, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  134. laDesignBoxedTheme(t, "Collection Group",&_LA_THEME_COLLECTION_GROUP,
  135. 0.75, 0.65, 0.2, 0.1, 0.7, 0.3, 0.11, 0.11, 0, 0, 0.11, 0.11, 0.11, 0.11);
  136. laDesignBoxedTheme(t, "Collection Item",&_LA_THEME_COLLECTION_ITEM,
  137. 0.75, 0.65, 0.2, 0.1, 0.7, 0.3, 0.11, 0.11, 0, 0, 0.11, 0.11, 0.11, 0.11);
  138. laDesignBoxedTheme(t, "3D Viewer",&_LA_THEME_3D_VIEW,
  139. 0.75, 0.65, 0.2, 0.1, 0.7, 0.3, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  140. laDesignBoxedTheme(t, "2D Viewer",&_LA_THEME_2D_VIEW,
  141. 0.75, 0.65, 0.2, 0.1, 0.7, 0.3, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  142. la_RefreshThemeColor(t);
  143. }
  144. laTheme* t1=t;
  145. t = laDesignTheme("Classic Dark", "YimingWu");{
  146. LA_SET3(t->Color, 0.5,0.4,0.3);
  147. LA_SET3(t->AccentColor, 0.17,0.74,0.49);
  148. t->InactiveMix=0.7; t->InactiveSaturation=0.2;
  149. t->CursorAlpha=0.9; t->SelectionAlpha=0.3;
  150. t->WireBrightness=0.6; t->WireSaturation=0.7; t->WireTransparency=0.65;
  151. t->EdgeBrightness=0.05; t->EdgeTransparency=0.8; t->VertexBrightness=0.05, t->VertexTransparency=0.9;
  152. t->SelectedFaceTransparency=0.6,t->SelectedEdgeTransparency=0.9, t->SelectedVertexTransparency=1.0;
  153. bt = laDesignBoxedTheme(t, "Panel",&_LA_THEME_PANEL,
  154. 0.2, 0.2, 0.1, 0.8, 0.9, 0.8, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  155. memAssignRef(bt, &bt->Parent, t1);
  156. bt = laDesignBoxedTheme(t, "Floating Panel",&_LA_THEME_FLOATING_PANEL,
  157. 0.05, 0.05, 0.4, 0.8, 0.9, 0.8, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  158. memAssignRef(bt, &bt->Parent, t1);
  159. bt = laDesignBoxedTheme(t, "Valuator",&_LA_THEME_VALUATOR,
  160. 0.3, 0.1, 0.4, 0.8, 0.9, 0.9, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  161. memAssignRef(bt, &bt->Parent, t1);
  162. bt = laDesignBoxedTheme(t, "Button",&_LA_THEME_BUTTON,
  163. 0.1, 0.9, 0.3, 0.8, 0.1, 0.95, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  164. bt = laDesignBoxedTheme(t, "String",&_LA_THEME_STRING,
  165. 0.1, 0.03, 0.3, 0.8, 0.9, 0.95, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  166. bt = laDesignBoxedTheme(t, "Selector",&_LA_THEME_SELECTOR,
  167. 0.15, 0.7, 0.3, 0.8, 0.2, 0.95, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  168. bt = laDesignBoxedTheme(t, "Collection Selector",&_LA_THEME_COLLECTION_SELECTOR,
  169. 0.15, 0.1, 0.3, 0.8, 0.9, 0.95, -0.11, 1, -0.11, -0.11, 0.11, 0.11, 0.11, 0.11);
  170. bt = laDesignBoxedTheme(t, "Label",&_LA_THEME_LABEL,
  171. 0.15, 0.1, 0.3, 0.8, 0.9, 0.95, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  172. bt = laDesignBoxedTheme(t, "Tab",&_LA_THEME_TAB,
  173. 0.2, 0.3, 0.8, 0.7, 0.1, 0.9, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  174. bt = laDesignBoxedTheme(t, "Socket",&_LA_THEME_SOCKET,
  175. 0.1, 0.65, 0.7, 0.8, 0.1, 0.95, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  176. bt = laDesignBoxedTheme(t, "Collection Group",&_LA_THEME_COLLECTION_GROUP,
  177. 0.25, 0.35, 0.8, 0.7, 0.1, 0.3, 0.11, 0.11, 0, 0, 0.11, 0.11, 0.11, 0.11);
  178. bt = laDesignBoxedTheme(t, "Collection Item",&_LA_THEME_COLLECTION_ITEM,
  179. 0.25, 0.35, 0.8, 0.7, 0.1, 0.3, 0.11, 0.11, 0, 0, 0.11, 0.11, 0.11, 0.11);
  180. bt = laDesignBoxedTheme(t, "3D Viewer",&_LA_THEME_3D_VIEW,
  181. 0.25, 0.35, 0.8, 0.7, 0.1, 0.3, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  182. bt = laDesignBoxedTheme(t, "2D Viewer",&_LA_THEME_2D_VIEW,
  183. 0.25, 0.35, 0.8, 0.7, 0.1, 0.3, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11, 0.11);
  184. la_RefreshThemeColor(t);
  185. }
  186. }
  187. void la_RegisterInternalTemplates(){
  188. la_RegisterBuiltinTemplates();
  189. }