diff options
Diffstat (limited to 'src/ui/root.c')
-rw-r--r-- | src/ui/root.c | 106 |
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(); |