summaryrefslogtreecommitdiff
path: root/src/ui/root.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/root.c')
-rw-r--r--src/ui/root.c106
1 files changed, 42 insertions, 64 deletions
diff --git a/src/ui/root.c b/src/ui/root.c
index f722df94..65fc11d1 100644
--- a/src/ui/root.c
+++ b/src/ui/root.c
@@ -487,11 +487,23 @@ static iBool handleRootCommands_(iWidget *root, const char *cmd) {
487 else if (deviceType_App() == phone_AppDeviceType && equal_Command(cmd, "window.resized")) { 487 else if (deviceType_App() == phone_AppDeviceType && equal_Command(cmd, "window.resized")) {
488 /* Place the sidebar next to or under doctabs depending on orientation. */ 488 /* Place the sidebar next to or under doctabs depending on orientation. */
489 iSidebarWidget *sidebar = findChild_Widget(root, "sidebar"); 489 iSidebarWidget *sidebar = findChild_Widget(root, "sidebar");
490 iSidebarWidget *sidebar2 = findChild_Widget(root, "sidebar2");
491 removeChild_Widget(parent_Widget(sidebar), sidebar); 490 removeChild_Widget(parent_Widget(sidebar), sidebar);
492 // setBackgroundColor_Widget(findChild_Widget(as_Widget(sidebar), "buttons"), 491 if (isLandscape_App()) {
493 // isPortrait_App() ? uiBackgroundUnfocusedSelection_ColorId 492 addChildPos_Widget(findChild_Widget(root, "tabs.content"), iClob(sidebar), front_WidgetAddPos);
494 // : uiBackgroundSidebar_ColorId); 493 setWidth_SidebarWidget(sidebar, 73.0f);
494 setFlags_Widget(as_Widget(sidebar), fixedHeight_WidgetFlag, iFalse);
495 }
496 else {
497 addChild_Widget(root, iClob(sidebar));
498 setWidth_SidebarWidget(sidebar, (float) width_Widget(root) / (float) gap_UI);
499 const int midHeight = height_Widget(root) / 2;// + lineHeight_Text(uiLabelLarge_FontId);
500 setMidHeight_SidebarWidget(sidebar, midHeight);
501 setFixedSize_Widget(as_Widget(sidebar), init_I2(-1, midHeight));
502 setPos_Widget(as_Widget(sidebar), init_I2(0, height_Widget(root) - midHeight));
503 }
504#if 0
505 iSidebarWidget *sidebar = findChild_Widget(root, "sidebar");
506 iSidebarWidget *sidebar2 = findChild_Widget(root, "sidebar2");
495 setFlags_Widget(findChild_Widget(as_Widget(sidebar), "buttons"), 507 setFlags_Widget(findChild_Widget(as_Widget(sidebar), "buttons"),
496 borderTop_WidgetFlag, 508 borderTop_WidgetFlag,
497 isPortrait_App()); 509 isPortrait_App());
@@ -507,6 +519,7 @@ static iBool handleRootCommands_(iWidget *root, const char *cmd) {
507 setWidth_SidebarWidget(sidebar, (float) width_Widget(root) / (float) gap_UI); 519 setWidth_SidebarWidget(sidebar, (float) width_Widget(root) / (float) gap_UI);
508 setWidth_SidebarWidget(sidebar2, (float) width_Widget(root) / (float) gap_UI); 520 setWidth_SidebarWidget(sidebar2, (float) width_Widget(root) / (float) gap_UI);
509 } 521 }
522#endif
510 return iFalse; 523 return iFalse;
511 } 524 }
512 else if (handleCommand_App(cmd)) { 525 else if (handleCommand_App(cmd)) {
@@ -609,14 +622,14 @@ void updatePadding_Root(iRoot *d) {
609 } 622 }
610 } 623 }
611#endif 624#endif
612 if (toolBar) { 625// if (toolBar) {
613 /* TODO: get this from toolBar height, but it's buggy for some reason */ 626 /* TODO: get this from toolBar height, but it's buggy for some reason */
614 const int sidebarBottomPad = isPortrait_App() ? 11 * gap_UI + bottom : 0; 627// const int sidebarBottomPad = isPortrait_App() ? 11 * gap_UI + bottom : 0;
615 setPadding_Widget(findChild_Widget(d->widget, "sidebar"), 0, 0, 0, sidebarBottomPad); 628// setPadding_Widget(findChild_Widget(d->widget, "sidebar"), 0, 0, 0, sidebarBottomPad);
616 setPadding_Widget(findChild_Widget(d->widget, "sidebar2"), 0, 0, 0, sidebarBottomPad); 629 //setPadding_Widget(findChild_Widget(d->widget, "sidebar2"), 0, 0, 0, sidebarBottomPad);
617 /* TODO: There seems to be unrelated layout glitch in the sidebar where its children 630 /* TODO: There seems to be unrelated layout glitch in the sidebar where its children
618 are not arranged correctly until it's hidden and reshown. */ 631 are not arranged correctly until it's hidden and reshown. */
619 } 632// }
620 /* Note that `handleNavBarCommands_` also adjusts padding and spacing. */ 633 /* Note that `handleNavBarCommands_` also adjusts padding and spacing. */
621} 634}
622 635
@@ -1015,30 +1028,17 @@ static iBool handleToolBarCommands_(iWidget *toolBar, const char *cmd) {
1015 } 1028 }
1016 else if (equal_Command(cmd, "toolbar.showview")) { 1029 else if (equal_Command(cmd, "toolbar.showview")) {
1017 /* TODO: Clean this up. */ 1030 /* TODO: Clean this up. */
1018 iWidget *sidebar = findWidget_App("sidebar"); 1031// iWidget *sidebar = findWidget_App("sidebar");
1019 iWidget *sidebar2 = findWidget_App("sidebar2"); 1032// iWidget *sidebar2 = findWidget_App("sidebar2");
1020 dismissSidebar_(sidebar2, "toolbar.ident"); 1033// dismissSidebar_(sidebar2, "toolbar.ident");
1021 const iBool isVisible = isVisible_Widget(sidebar); 1034// const iBool isVisible = isVisible_Widget(sidebar);
1022 // setFlags_Widget(findChild_Widget(toolBar, "toolbar.view"), noBackground_WidgetFlag,
1023 // isVisible);
1024 /* If a sidebar hasn't been shown yet, it's height is zero. */ 1035 /* If a sidebar hasn't been shown yet, it's height is zero. */
1025 const int viewHeight = size_Root(get_Root()).y; 1036// const int viewHeight = size_Root(get_Root()).y;
1026 if (arg_Command(cmd) >= 0) { 1037 if (arg_Command(cmd) >= 0) {
1027 postCommandf_App("sidebar.mode arg:%d show:1", arg_Command(cmd)); 1038 postCommandf_App("sidebar.mode arg:%d show:1", arg_Command(cmd));
1028// if (!isVisible) {
1029// setVisualOffset_Widget(sidebar, viewHeight, 0, 0);
1030// setVisualOffset_Widget(sidebar, 0, 400, easeOut_AnimFlag | softer_AnimFlag);
1031// }
1032 } 1039 }
1033 else { 1040 else {
1034 postCommandf_App("sidebar.toggle"); 1041 postCommandf_App("sidebar.toggle");
1035// if (isVisible) {
1036// setVisualOffset_Widget(sidebar, height_Widget(sidebar), 250, easeIn_AnimFlag);
1037// }
1038// else {
1039// setVisualOffset_Widget(sidebar, viewHeight, 0, 0);
1040// setVisualOffset_Widget(sidebar, 0, 400, easeOut_AnimFlag | softer_AnimFlag);
1041// }
1042 } 1042 }
1043 return iTrue; 1043 return iTrue;
1044 } 1044 }
@@ -1110,41 +1110,22 @@ void updateMetrics_Root(iRoot *d) {
1110 setFixedSize_Widget(appClose, appMin->rect.size); 1110 setFixedSize_Widget(appClose, appMin->rect.size);
1111 setFixedSize_Widget(appIcon, init_I2(appIconSize_Root(), appMin->rect.size.y)); 1111 setFixedSize_Widget(appIcon, init_I2(appIconSize_Root(), appMin->rect.size.y));
1112 } 1112 }
1113 iWidget *navBar = findChild_Widget(d->widget, "navbar"); 1113 iWidget *navBar = findChild_Widget(d->widget, "navbar");
1114// iWidget *lock = findChild_Widget(navBar, "navbar.lock"); 1114 iWidget *url = findChild_Widget(d->widget, "url");
1115 iWidget *url = findChild_Widget(d->widget, "url"); 1115 iWidget *rightEmbed = findChild_Widget(navBar, "url.rightembed");
1116 iWidget *rightEmbed = findChild_Widget(navBar, "url.rightembed"); 1116 iWidget *embedPad = findChild_Widget(navBar, "url.embedpad");
1117 iWidget *embedPad = findChild_Widget(navBar, "url.embedpad"); 1117 iWidget *urlButtons = findChild_Widget(navBar, "url.buttons");
1118 iWidget *urlButtons = findChild_Widget(navBar, "url.buttons"); 1118 iLabelWidget *idName = findChild_Widget(d->widget, "toolbar.name");
1119 setPadding_Widget(as_Widget(url), 0, gap_UI, 0, gap_UI); 1119 setPadding_Widget(as_Widget(url), 0, gap_UI, 0, gap_UI);
1120 navBar->rect.size.y = 0; /* recalculate height based on children (FIXME: shouldn't be needed) */ 1120 navBar->rect.size.y = 0; /* recalculate height based on children (FIXME: shouldn't be needed) */
1121// updateSize_LabelWidget((iLabelWidget *) lock);
1122// updateSize_LabelWidget((iLabelWidget *) findChild_Widget(navBar, "reload"));
1123// arrange_Widget(urlButtons);
1124 setFixedSize_Widget(embedPad, init_I2(width_Widget(urlButtons) + gap_UI / 2, 1)); 1121 setFixedSize_Widget(embedPad, init_I2(width_Widget(urlButtons) + gap_UI / 2, 1));
1125// setContentPadding_InputWidget((iInputWidget *) url, width_Widget(lock) * 0.75,
1126// width_Widget(lock) * 0.75);
1127 rightEmbed->rect.pos.y = gap_UI; 1122 rightEmbed->rect.pos.y = gap_UI;
1128 updatePadding_Root(d); 1123 updatePadding_Root(d);
1129 arrange_Widget(d->widget); 1124 arrange_Widget(d->widget);
1130 updateUrlInputContentPadding_(navBar); 1125 updateUrlInputContentPadding_(navBar);
1131 /* Position the toolbar identity name label manually. */ { 1126 if (idName) {
1132 iLabelWidget *idName = findChild_Widget(d->widget, "toolbar.name"); 1127 setFixedSize_Widget(as_Widget(idName),
1133 if (idName) { 1128 init_I2(-1, 2 * gap_UI + lineHeight_Text(uiLabelTiny_FontId)));
1134 const iWidget *toolBar = findChild_Widget(d->widget, "toolbar");
1135 const iWidget *viewButton = findChild_Widget(d->widget, "toolbar.view");
1136 const iWidget *idButton = findChild_Widget(toolBar, "toolbar.ident");
1137// const int font = uiLabelTiny_FontId;
1138 setFixedSize_Widget(as_Widget(idName), init_I2(-1, 2 * gap_UI + lineHeight_Text(uiLabelTiny_FontId)));
1139// setFont_LabelWidget(idName, font);
1140 /*setPos_Widget(as_Widget(idName),
1141 windowToLocal_Widget(as_Widget(idName),
1142 init_I2(left_Rect(bounds_Widget(idButton)),
1143 bottom_Rect(bounds_Widget(viewButton)) -
1144 lineHeight_Text(font) - gap_UI / 2)));
1145 setFixedSize_Widget(as_Widget(idName), init_I2(width_Widget(idButton),
1146 lineHeight_Text(font)));*/
1147 }
1148 } 1129 }
1149 postRefresh_App(); 1130 postRefresh_App();
1150} 1131}
@@ -1168,11 +1149,9 @@ void createUserInterface_Root(iRoot *d) {
1168 setFlags_Widget( 1149 setFlags_Widget(
1169 root, resizeChildren_WidgetFlag | fixedSize_WidgetFlag | focusRoot_WidgetFlag, iTrue); 1150 root, resizeChildren_WidgetFlag | fixedSize_WidgetFlag | focusRoot_WidgetFlag, iTrue);
1170 setCommandHandler_Widget(root, handleRootCommands_); 1151 setCommandHandler_Widget(root, handleRootCommands_);
1171
1172 iWidget *div = makeVDiv_Widget(); 1152 iWidget *div = makeVDiv_Widget();
1173 setId_Widget(div, "navdiv"); 1153 setId_Widget(div, "navdiv");
1174 addChild_Widget(root, iClob(div)); 1154 addChild_Widget(root, iClob(div));
1175
1176#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME) 1155#if defined (LAGRANGE_ENABLE_CUSTOM_FRAME)
1177 /* Window title bar. */ 1156 /* Window title bar. */
1178 if (prefs_App()->customFrame) { 1157 if (prefs_App()->customFrame) {
@@ -1446,20 +1425,19 @@ void createUserInterface_Root(iRoot *d) {
1446 "newtab"); 1425 "newtab");
1447 } 1426 }
1448 /* Sidebars. */ { 1427 /* Sidebars. */ {
1449 iWidget *content = findChild_Widget(root, "tabs.content");
1450 iSidebarWidget *sidebar1 = new_SidebarWidget(left_SidebarSide); 1428 iSidebarWidget *sidebar1 = new_SidebarWidget(left_SidebarSide);
1451 addChildPos_Widget(content, iClob(sidebar1), front_WidgetAddPos);
1452 if (deviceType_App() != phone_AppDeviceType) { 1429 if (deviceType_App() != phone_AppDeviceType) {
1430 /* Sidebars are next to the tab content. */
1431 iWidget *content = findChild_Widget(root, "tabs.content");
1432 addChildPos_Widget(content, iClob(sidebar1), front_WidgetAddPos);
1453 iSidebarWidget *sidebar2 = new_SidebarWidget(right_SidebarSide); 1433 iSidebarWidget *sidebar2 = new_SidebarWidget(right_SidebarSide);
1454 addChildPos_Widget(content, iClob(sidebar2), back_WidgetAddPos); 1434 addChildPos_Widget(content, iClob(sidebar2), back_WidgetAddPos);
1455 } 1435 }
1456#if 0
1457 else { 1436 else {
1458 /* The identities sidebar is always in the main area. */ 1437 /* Sidebar is a slide-over. */
1459 addChild_Widget(findChild_Widget(root, "stack"), iClob(sidebar2)); 1438 addChild_Widget(/*findChild_Widget(root, "stack")*/ root, iClob(sidebar1));
1460 setFlags_Widget(as_Widget(sidebar2), hidden_WidgetFlag, iTrue); 1439 setFlags_Widget(as_Widget(sidebar1), hidden_WidgetFlag, iTrue);
1461 } 1440 }
1462#endif
1463 } 1441 }
1464 /* Lookup results. */ { 1442 /* Lookup results. */ {
1465 iLookupWidget *lookup = new_LookupWidget(); 1443 iLookupWidget *lookup = new_LookupWidget();