|
@@ -2,7 +2,7 @@
|
|
|
|
|
|
extern LA MAIN;
|
|
extern LA MAIN;
|
|
extern struct _tnsMain *T;
|
|
extern struct _tnsMain *T;
|
|
-
|
|
|
|
|
|
+extern const char* LA_UDF_EXTENSION_STRINGS[];
|
|
|
|
|
|
int laget_InstanceModified(void* instance);
|
|
int laget_InstanceModified(void* instance);
|
|
void laget_TimeString(laTimeInfo *ti, char *result, char** resultdirect);
|
|
void laget_TimeString(laTimeInfo *ti, char *result, char** resultdirect);
|
|
@@ -461,40 +461,55 @@ void laui_ColumnItem(laUiList *uil, laPropPack *Base, laPropPack *UNUSED_This, l
|
|
laEndCondition(uil, bracket);
|
|
laEndCondition(uil, bracket);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void laui_DefaultMenuButtonsFileEntries(laUiList *uil, laPropPack *pp, laPropPack *actinst, laColumn *extracol, int context){
|
|
|
|
+ laColumn* c=laFirstColumn(uil);
|
|
|
|
+
|
|
|
|
+ laShowLabel(uil, c, "Function Test", 0, 0);
|
|
|
|
+ laShowItem(uil, c, 0, "LA_pure_yes_no");
|
|
|
|
+ laShowItem(uil, c, 0, "LA_file_dialog");
|
|
|
|
+ laShowItem(uil, c, 0, "LA_udf_read");
|
|
|
|
+ laShowItem(uil, c, 0, "LA_managed_save");
|
|
|
|
+ laShowItem(uil, c, 0, "LA_manage_udf");
|
|
|
|
+
|
|
|
|
+ laShowLabel(uil, c, "Other Entries", 0, 0);
|
|
|
|
+ laShowItemFull(uil, c, 0, "LA_panel_activator", 0, "panel_id=LAUI_about;text=About;", 0, 0);
|
|
|
|
+ laShowItem(uil, c, 0, "LA_terminate_program");
|
|
|
|
+}
|
|
|
|
+void laui_DefaultMenuButtonsOptionEntries(laUiList *uil, laPropPack *pp, laPropPack *actinst, laColumn *extracol, int context){
|
|
|
|
+ laColumn* c=laFirstColumn(uil);
|
|
|
|
+ laShowLabel(uil, c, "Settings", 0, 0);
|
|
|
|
+ laShowItemFull(uil, c, 0, "LA_panel_activator", 0, "panel_id=LAUI_user_preferences;", 0, 0);
|
|
|
|
+}
|
|
|
|
+void laui_DefaultMenuButtons(laUiList *uil, laPropPack *pp, laPropPack *actinst, laColumn *extracol, int context){
|
|
|
|
+ laUiList *muil; laColumn *mc,*c = laFirstColumn(uil);
|
|
|
|
+ muil = laMakeMenuPage(uil, c, "File");{
|
|
|
|
+ mc = laFirstColumn(muil); laui_DefaultMenuButtonsFileEntries(muil,pp,actinst,extracol,0);
|
|
|
|
+ }
|
|
|
|
+ muil = laMakeMenuPage(uil, c, "Options"); {
|
|
|
|
+ mc = laFirstColumn(muil); laui_DefaultMenuButtonsOptionEntries(muil,pp,actinst,extracol,0);
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+void laui_DefaultMenuExtras(laUiList *uil, laPropPack *pp, laPropPack *actinst, laColumn *extracol, int context){
|
|
|
|
+ laColumn *c = laFirstColumn(uil);
|
|
|
|
+ laShowLabel(uil, c, MAIN.MenuProgramName, 0, 0)->Expand=1;
|
|
|
|
+}
|
|
|
|
+
|
|
void laui_DefaultMenuBarActual(laUiList *uil, laPropPack *pp, laPropPack *actinst, laColumn *extracol, int context){
|
|
void laui_DefaultMenuBarActual(laUiList *uil, laPropPack *pp, laPropPack *actinst, laColumn *extracol, int context){
|
|
laUiList *muil;
|
|
laUiList *muil;
|
|
- laColumn *c, *c1, *c1r, *c2, *c2r, *c3, *c3r, *c4, *c4r, *mc, *mcl, *mcr;
|
|
|
|
|
|
+ laColumn *c,*mc;
|
|
laUiItem* bb;
|
|
laUiItem* bb;
|
|
|
|
|
|
c = laFirstColumn(uil);
|
|
c = laFirstColumn(uil);
|
|
laUiItem* row=laBeginRow(uil,c,0,0);
|
|
laUiItem* row=laBeginRow(uil,c,0,0);
|
|
|
|
|
|
bb=laOnConditionThat(uil,c,laPropExpression(0,"la.windows.operator_hints"));{
|
|
bb=laOnConditionThat(uil,c,laPropExpression(0,"la.windows.operator_hints"));{
|
|
-
|
|
|
|
|
|
+
|
|
laShowItem(uil,c,0,"la.windows.operator_hints");
|
|
laShowItem(uil,c,0,"la.windows.operator_hints");
|
|
|
|
|
|
}laElse(uil,bb);{
|
|
}laElse(uil,bb);{
|
|
laShowItem(uil, c, 0, "LA_new_panel")->Flags=LA_UI_FLAGS_ICON;
|
|
laShowItem(uil, c, 0, "LA_new_panel")->Flags=LA_UI_FLAGS_ICON;
|
|
- muil = laMakeMenuPage(uil, c, "File");{
|
|
|
|
- mc = laFirstColumn(muil);
|
|
|
|
- laShowItem(muil, mc, 0, "TNS_load_exchange");
|
|
|
|
-
|
|
|
|
- laShowLabel(muil, mc, "Function Test", 0, 0);
|
|
|
|
- laShowItem(muil, mc, 0, "LA_pure_yes_no");
|
|
|
|
- laShowItem(muil, mc, 0, "LA_file_dialog");
|
|
|
|
- laShowItem(muil, mc, 0, "LA_udf_read");
|
|
|
|
- laShowItem(muil, mc, 0, "LA_managed_save");
|
|
|
|
- laShowItem(muil, mc, 0, "LA_manage_udf");
|
|
|
|
-
|
|
|
|
- laShowLabel(muil, mc, "Other Entries", 0, 0);
|
|
|
|
- laShowItemFull(muil, mc, 0, "LA_panel_activator", 0, "panel_id=LAUI_about;text=About;", 0, 0);
|
|
|
|
- laShowItem(muil, mc, 0, "LA_terminate_program");
|
|
|
|
- }
|
|
|
|
- muil = laMakeMenuPage(uil, c, "Options"); {
|
|
|
|
- mc = laFirstColumn(muil);
|
|
|
|
- laShowLabel(muil, mc, "Settings", 0, 0);
|
|
|
|
- laShowItemFull(muil, mc, 0, "LA_panel_activator", 0, "panel_id=LAUI_user_preferences;", 0, 0);
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
+ if(MAIN.MenuButtons){ MAIN.MenuButtons(uil,0,0,0,0); }
|
|
|
|
|
|
laShowSeparator(uil,c);
|
|
laShowSeparator(uil,c);
|
|
|
|
|
|
@@ -512,8 +527,7 @@ void laui_DefaultMenuBarActual(laUiList *uil, laPropPack *pp, laPropPack *actins
|
|
}laEndCondition(uil, ui);
|
|
}laEndCondition(uil, ui);
|
|
}laEndCondition(uil,mui);
|
|
}laEndCondition(uil,mui);
|
|
|
|
|
|
- laShowSeparator(uil,c);
|
|
|
|
- laShowLabel(uil, c, "🧩LaGUI 2022", 0, 0)->Expand=1;
|
|
|
|
|
|
+ if(MAIN.MenuExtras){ laShowSeparator(uil,c); MAIN.MenuExtras(uil,0,0,0,0); }
|
|
|
|
|
|
laUiItem* b1=laOnConditionThat(uil,c,laPropExpression(0,"la.windows.panels_hidden"));
|
|
laUiItem* b1=laOnConditionThat(uil,c,laPropExpression(0,"la.windows.panels_hidden"));
|
|
laShowSeparator(uil,c);
|
|
laShowSeparator(uil,c);
|
|
@@ -529,9 +543,6 @@ void laui_DefaultMenuBarActual(laUiList *uil, laPropPack *pp, laPropPack *actins
|
|
}
|
|
}
|
|
void laui_DefaultMenuBar(laWindow *w){
|
|
void laui_DefaultMenuBar(laWindow *w){
|
|
laPanel *p;
|
|
laPanel *p;
|
|
- laUiList *uil, *muil;
|
|
|
|
- laColumn *c, *c1, *c1r, *c2, *c2r, *c3, *c3r, *c4, *c4r, *mc;
|
|
|
|
- laUiItem *bracket;
|
|
|
|
|
|
|
|
p =laCreateTopPanel(w, 0, 0, 0, 0, LA_RH, 0, 0, 0, 0, -1, -1, -1, 0);
|
|
p =laCreateTopPanel(w, 0, 0, 0, 0, LA_RH, 0, 0, 0, 0, -1, -1, -1, 0);
|
|
p->IsMenuPanel = 1;
|
|
p->IsMenuPanel = 1;
|
|
@@ -1275,57 +1286,40 @@ void laui_About(laUiList *uil, laPropPack *Base, laPropPack *OperatorInst, laCol
|
|
c = laFirstColumn(uil);
|
|
c = laFirstColumn(uil);
|
|
|
|
|
|
laShowLabel(uil, c, "LaGUI", 0, 0);
|
|
laShowLabel(uil, c, "LaGUI", 0, 0);
|
|
- laShowLabel(uil, c, "2022", 0, 0);
|
|
|
|
|
|
+ laShowLabel(uil, c, "A graphical user interface application toolkit", 0, 0)->Flags|=LA_TEXT_LINE_WRAP;
|
|
laShowLabel(uil, c, "(C)Yiming Wu", 0, 0);
|
|
laShowLabel(uil, c, "(C)Yiming Wu", 0, 0);
|
|
|
|
|
|
t = laMakeTab(uil, c, 0);{
|
|
t = laMakeTab(uil, c, 0);{
|
|
first = u = laAddTabPage(t, "Version");
|
|
first = u = laAddTabPage(t, "Version");
|
|
- u->HeightCoeff=-1;
|
|
|
|
tc = laFirstColumn(u);
|
|
tc = laFirstColumn(u);
|
|
|
|
|
|
- g = laMakeGroup(u, tc, "User Interface", 0);
|
|
|
|
|
|
+ g = laMakeGroup(u, tc, "LaGUI information", 0);
|
|
gu = g->Page;{
|
|
gu = g->Page;{
|
|
gc = laFirstColumn(gu);
|
|
gc = laFirstColumn(gu);
|
|
|
|
+ sprintf(buf, "LaGUI.%d.%d.%d", LA_VERSION_MAIN, LA_VERSION_SUB, LA_VERSION_MINOR);
|
|
|
|
+ laShowLabel(gu, gc, buf, 0, 0)->Flags|=LA_TEXT_MONO;
|
|
|
|
+ sprintf(buf, "Program built on:[UTC+8] %s %s", __DATE__, __TIME__);
|
|
|
|
+ laShowLabel(gu, gc, buf, 0, 0)->Flags|=LA_TEXT_MONO;
|
|
|
|
+ sprintf(buf, "UDF Capability %s %d.%d.%d",LA_UDF_IDENTIFIER, LA_UDF_CAPABILITY_MAIN, LA_UDF_CAPABILITY_SUB, LA_UDF_CAPABILITY_MINOR);
|
|
|
|
+ laShowLabel(gu, gc, buf, 0, 0)->Flags|=LA_TEXT_MONO;
|
|
|
|
+ laShowLabel(gu, gc, "UDF Extensions:", 0, 0)->Flags|=LA_TEXT_MONO;
|
|
|
|
+ laShowLabel(gu, gc, "🗸 LA_UDF_BASICS", 0, 0)->Flags|=LA_TEXT_MONO;
|
|
|
|
+ for(int i=0;i<64;i++){
|
|
|
|
+ if(!LA_UDF_EXTENSION_STRINGS[i][0]) break; int gray=!((1<<i)&LA_UDF_EXTENSION_BITS);
|
|
|
|
+ sprintf(buf,"%s %s",gray?" ":"🗸",LA_UDF_EXTENSION_STRINGS[i]);
|
|
|
|
+ laUiItem* ext=laShowLabel(gu, gc, buf, 0, 0); ext->Flags|=LA_TEXT_MONO;
|
|
|
|
+ if(gray){ ext->Flags|=LA_UI_FLAGS_DISABLED; }
|
|
|
|
+ }
|
|
|
|
|
|
- //laShowSymbol(gu, gc, 0, 0);
|
|
|
|
- laShowSymbol(gu, gc, 0, 0);
|
|
|
|
- laShowLabel(gu, gc, "A graphical user interface application toolkit", 0, 0)->Flags|=LA_TEXT_LINE_WRAP;;
|
|
|
|
- laShowLabel(gu, gc, "(C)YimingWu", 0, 0);
|
|
|
|
-
|
|
|
|
- sprintf(buf, "🛈 LA.%d.%d.%d", LA_VERSION_MAIN, LA_VERSION_SUB, LA_VERSION_MINOR);
|
|
|
|
- laShowLabelDynamic(gu, gc, buf, 0, 0);
|
|
|
|
- laShowLabel(gu, gc, "🗇" " Branch:master", 0, 0);
|
|
|
|
- sprintf(buf, "📅 Date:[UTC+8] %s %s", __DATE__, __TIME__);
|
|
|
|
- laShowLabelDynamic(gu, gc, buf, 0, 0);
|
|
|
|
- sprintf(buf, "🖹 UDF Capability %d.%d.%d", LA_UDF_CAPABILITY_MAIN, LA_UDF_CAPABILITY_SUB, LA_UDF_CAPABILITY_MINOR);
|
|
|
|
- laShowLabelDynamic(gu, gc, buf, 0, 0);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- g = laMakeGroup(u, tc, "Graphics Information", 0);
|
|
|
|
- gu = g->Page;{
|
|
|
|
- gc = laFirstColumn(gu);
|
|
|
|
- laSplitColumn(gu, gc, 0.6);
|
|
|
|
- gcl = laLeftColumn(gc, 0);
|
|
|
|
- gcr = laRightColumn(gc, 0);
|
|
|
|
- laShowSymbol(gu, gcl, 0, 0);
|
|
|
|
-
|
|
|
|
- laShowLabel(gu, gc, "The interface uses OpenGL as the graphics backend", 0, 0)->Flags|=LA_TEXT_LINE_WRAP;
|
|
|
|
-
|
|
|
|
- sprintf(buf, "🛈" " OpenGL Version: %s", T->GLVersionStr);
|
|
|
|
- laShowLabelDynamic(gu, gc, buf, 0, 0);
|
|
|
|
- sprintf(buf, "🛈" " OpenGL Vendor: %s", T->GLVendorStr);
|
|
|
|
- laShowLabelDynamic(gu, gc, buf, 0, 0);
|
|
|
|
- sprintf(buf, "🛈" " OpenGL Renderer: %s", T->GLRendererStr);
|
|
|
|
- laShowLabelDynamic(gu, gc, buf, 0, 0);
|
|
|
|
- sprintf(buf, "🛈" " GLSL Version: %s", T->GLSLVersionStr);
|
|
|
|
- laShowLabelDynamic(gu, gc, buf, 0, 0);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- g = laMakeGroup(u, tc, "Build Tool", 0);
|
|
|
|
|
|
+ g = laMakeGroup(u, tc, "Graphics", 0);
|
|
gu = g->Page;{
|
|
gu = g->Page;{
|
|
gc = laFirstColumn(gu);
|
|
gc = laFirstColumn(gu);
|
|
- laShowSymbol(gu, gc, 0, 0);
|
|
|
|
- laShowLabel(gu, gc, "This Program Is Built With GCC Tool Chain", 0, 0)->Flags|=LA_TEXT_LINE_WRAP;
|
|
|
|
|
|
+ sprintf(buf, "OpenGL Version: %s", T->GLVersionStr); laShowLabel(gu, gc, buf, 0, 0)->Flags|=LA_TEXT_MONO;
|
|
|
|
+ sprintf(buf, "OpenGL Vendor: %s", T->GLVendorStr); laShowLabel(gu, gc, buf, 0, 0)->Flags|=LA_TEXT_MONO;
|
|
|
|
+ sprintf(buf, "OpenGL Renderer: %s", T->GLRendererStr); laShowLabel(gu, gc, buf, 0, 0)->Flags|=LA_TEXT_MONO;
|
|
|
|
+ sprintf(buf, "GLSL Version: %s", T->GLSLVersionStr); laShowLabel(gu, gc, buf, 0, 0)->Flags|=LA_TEXT_MONO;
|
|
}
|
|
}
|
|
|
|
|
|
u = laAddTabPage(t, "Props");{
|
|
u = laAddTabPage(t, "Props");{
|
|
@@ -1360,10 +1354,10 @@ void laui_About(laUiList *uil, laPropPack *Base, laPropPack *OperatorInst, laCol
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- u = laAddTabPage(t, "Contact");
|
|
|
|
|
|
+ u = laAddTabPage(t, "Author");
|
|
tc = laFirstColumn(u);
|
|
tc = laFirstColumn(u);
|
|
laSplitColumn(u, tc, 0.8);
|
|
laSplitColumn(u, tc, 0.8);
|
|
- tcl = laLeftColumn(tc, 60);
|
|
|
|
|
|
+ tcl = laLeftColumn(tc, 3);
|
|
tcr = laRightColumn(tc, 00);
|
|
tcr = laRightColumn(tc, 00);
|
|
|
|
|
|
strSafeSet(&laShowSymbol(u, tc, 0, 0)->ExtraInstructions, "mode=invert;preserve=5;");
|
|
strSafeSet(&laShowSymbol(u, tc, 0, 0)->ExtraInstructions, "mode=invert;preserve=5;");
|
|
@@ -1499,8 +1493,6 @@ void laui_Drivers(laUiList *uil, laPropPack *This, laPropPack *Extra, laColumn *
|
|
|
|
|
|
|
|
|
|
void la_RegisterBuiltinTemplates(){
|
|
void la_RegisterBuiltinTemplates(){
|
|
- //laRegisterUiTemplate("LAUI_default_subwindow_menubar", "Menu", laui_DefaultSubWindowMenuBarActual, 0);
|
|
|
|
- //laRegisterUiTemplate("LAUI_default_menubar", "Menu", laui_DefaultMenuBarActual, 0);
|
|
|
|
laRegisterUiTemplate("LAUI_user_preferences", "User Preferences", laui_UserPreference, 0, 0);
|
|
laRegisterUiTemplate("LAUI_user_preferences", "User Preferences", laui_UserPreference, 0, 0);
|
|
laRegisterUiTemplate("LAUI_about", "About", laui_About, 0, 0);
|
|
laRegisterUiTemplate("LAUI_about", "About", laui_About, 0, 0);
|
|
laRegisterUiTemplate("LAUI_texture_inspector", "Texture Inspector", laui_TextureInspector, lauidetached_TextureInspector, 0);
|
|
laRegisterUiTemplate("LAUI_texture_inspector", "Texture Inspector", laui_TextureInspector, lauidetached_TextureInspector, 0);
|