summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/sidebarwidget.c14
-rw-r--r--src/ui/util.c82
2 files changed, 25 insertions, 71 deletions
diff --git a/src/ui/sidebarwidget.c b/src/ui/sidebarwidget.c
index 24ace92a..36aa1235 100644
--- a/src/ui/sidebarwidget.c
+++ b/src/ui/sidebarwidget.c
@@ -677,12 +677,22 @@ iBool handleBookmarkEditorCommands_SidebarWidget_(iWidget *editor, const char *c
677 const iString *title = text_InputWidget(findChild_Widget(editor, "bmed.title")); 677 const iString *title = text_InputWidget(findChild_Widget(editor, "bmed.title"));
678 const iString *url = text_InputWidget(findChild_Widget(editor, "bmed.url")); 678 const iString *url = text_InputWidget(findChild_Widget(editor, "bmed.url"));
679 const iString *tags = text_InputWidget(findChild_Widget(editor, "bmed.tags")); 679 const iString *tags = text_InputWidget(findChild_Widget(editor, "bmed.tags"));
680 const iString *icon = collect_String(trimmed_String(
681 text_InputWidget(findChild_Widget(editor, "bmed.icon"))));
680 const iSidebarItem *item = hoverItem_ListWidget(d->list); 682 const iSidebarItem *item = hoverItem_ListWidget(d->list);
681 iAssert(item); /* hover item cannot have been changed */ 683 iAssert(item); /* hover item cannot have been changed */
682 iBookmark *bm = get_Bookmarks(bookmarks_App(), item->id); 684 iBookmark *bm = get_Bookmarks(bookmarks_App(), item->id);
683 set_String(&bm->title, title); 685 set_String(&bm->title, title);
684 set_String(&bm->url, url); 686 set_String(&bm->url, url);
685 set_String(&bm->tags, tags); 687 set_String(&bm->tags, tags);
688 if (isEmpty_String(icon)) {
689 removeTag_Bookmark(bm, "usericon");
690 bm->icon = 0;
691 }
692 else if (!hasTag_Bookmark(bm, "usericon")) {
693 addTag_Bookmark(bm, "usericon");
694 bm->icon = first_String(icon);
695 }
686 postCommand_App("bookmarks.changed"); 696 postCommand_App("bookmarks.changed");
687 } 697 }
688 setFlags_Widget(as_Widget(d), disabled_WidgetFlag, iFalse); 698 setFlags_Widget(as_Widget(d), disabled_WidgetFlag, iFalse);
@@ -830,6 +840,10 @@ static iBool processEvent_SidebarWidget_(iSidebarWidget *d, const SDL_Event *ev)
830 setText_InputWidget(findChild_Widget(dlg, "bmed.title"), &bm->title); 840 setText_InputWidget(findChild_Widget(dlg, "bmed.title"), &bm->title);
831 setText_InputWidget(findChild_Widget(dlg, "bmed.url"), &bm->url); 841 setText_InputWidget(findChild_Widget(dlg, "bmed.url"), &bm->url);
832 setText_InputWidget(findChild_Widget(dlg, "bmed.tags"), &bm->tags); 842 setText_InputWidget(findChild_Widget(dlg, "bmed.tags"), &bm->tags);
843 if (hasTag_Bookmark(bm, "usericon")) {
844 setText_InputWidget(findChild_Widget(dlg, "bmed.icon"),
845 collect_String(newUnicodeN_String(&bm->icon, 1)));
846 }
833 setCommandHandler_Widget(dlg, handleBookmarkEditorCommands_SidebarWidget_); 847 setCommandHandler_Widget(dlg, handleBookmarkEditorCommands_SidebarWidget_);
834 setFocus_Widget(findChild_Widget(dlg, "bmed.title")); 848 setFocus_Widget(findChild_Widget(dlg, "bmed.title"));
835 } 849 }
diff --git a/src/ui/util.c b/src/ui/util.c
index c2ac41fa..f8151807 100644
--- a/src/ui/util.c
+++ b/src/ui/util.c
@@ -1053,21 +1053,6 @@ iWidget *makeQuestion_Widget(const char *title, const char *msg,
1053 addChildFlags_Widget(dlg, iClob(new_LabelWidget(title, NULL)), frameless_WidgetFlag); 1053 addChildFlags_Widget(dlg, iClob(new_LabelWidget(title, NULL)), frameless_WidgetFlag);
1054 addChildFlags_Widget(dlg, iClob(new_LabelWidget(msg, NULL)), frameless_WidgetFlag); 1054 addChildFlags_Widget(dlg, iClob(new_LabelWidget(msg, NULL)), frameless_WidgetFlag);
1055 addChild_Widget(dlg, iClob(makePadding_Widget(gap_UI))); 1055 addChild_Widget(dlg, iClob(makePadding_Widget(gap_UI)));
1056#if 0
1057 iWidget *div = new_Widget(); {
1058 setFlags_Widget(div, arrangeHorizontal_WidgetFlag | arrangeHeight_WidgetFlag, iTrue);
1059 for (size_t i = 0; i < numItems; ++i) {
1060 /* The last one is the default option. */
1061 const int key = (i == count - 1 ? SDLK_RETURN : 0);
1062 iLabelWidget *btn =
1063 addChild_Widget(div, iClob(newKeyMods_LabelWidget(labels[i], key, 0, commands[i])));
1064 if (key) {
1065 setFont_LabelWidget(btn, uiLabelBold_FontId);
1066 }
1067 }
1068 }
1069 addChild_Widget(dlg, iClob(div));
1070#endif
1071 iWidget *buttons = addChild_Widget(dlg, iClob(makeDialogButtons_(items, numItems))); 1056 iWidget *buttons = addChild_Widget(dlg, iClob(makeDialogButtons_(items, numItems)));
1072 addChild_Widget(get_Window()->root, iClob(dlg)); 1057 addChild_Widget(get_Window()->root, iClob(dlg));
1073 arrange_Widget(dlg); /* BUG: This extra arrange shouldn't be needed but the dialog won't 1058 arrange_Widget(dlg); /* BUG: This extra arrange shouldn't be needed but the dialog won't
@@ -1331,16 +1316,6 @@ iWidget *makePreferences_Widget(void) {
1331 expandInputFieldWidth_(findChild_Widget(tabs, "prefs.proxy.gopher")); 1316 expandInputFieldWidth_(findChild_Widget(tabs, "prefs.proxy.gopher"));
1332 expandInputFieldWidth_(findChild_Widget(tabs, "prefs.proxy.http")); 1317 expandInputFieldWidth_(findChild_Widget(tabs, "prefs.proxy.http"));
1333 } 1318 }
1334#if 0
1335 iWidget *div = new_Widget(); {
1336 setFlags_Widget(div, arrangeHorizontal_WidgetFlag | arrangeSize_WidgetFlag, iTrue);
1337 setFont_LabelWidget(
1338 addChild_Widget(
1339 div, iClob(newKeyMods_LabelWidget("Dismiss", SDLK_ESCAPE, 0, "prefs.dismiss"))),
1340 uiLabelBold_FontId);
1341 }
1342 addChild_Widget(dlg, iClob(div));
1343#endif
1344 addChild_Widget(dlg, 1319 addChild_Widget(dlg,
1345 iClob(makeDialogButtons_( 1320 iClob(makeDialogButtons_(
1346 (iMenuItem[]){ { "Dismiss", SDLK_ESCAPE, 0, "prefs.dismiss" } }, 1))); 1321 (iMenuItem[]){ { "Dismiss", SDLK_ESCAPE, 0, "prefs.dismiss" } }, 1)));
@@ -1363,7 +1338,7 @@ iWidget *makeBookmarkEditor_Widget(void) {
1363 page, iClob(new_Widget()), arrangeVertical_WidgetFlag | arrangeSize_WidgetFlag); 1338 page, iClob(new_Widget()), arrangeVertical_WidgetFlag | arrangeSize_WidgetFlag);
1364 iWidget *values = addChildFlags_Widget( 1339 iWidget *values = addChildFlags_Widget(
1365 page, iClob(new_Widget()), arrangeVertical_WidgetFlag | arrangeSize_WidgetFlag); 1340 page, iClob(new_Widget()), arrangeVertical_WidgetFlag | arrangeSize_WidgetFlag);
1366 iInputWidget *inputs[3]; 1341 iInputWidget *inputs[4];
1367 addChild_Widget(headings, iClob(makeHeading_Widget("Title:"))); 1342 addChild_Widget(headings, iClob(makeHeading_Widget("Title:")));
1368 setId_Widget(addChild_Widget(values, iClob(inputs[0] = new_InputWidget(0))), "bmed.title"); 1343 setId_Widget(addChild_Widget(values, iClob(inputs[0] = new_InputWidget(0))), "bmed.title");
1369 addChild_Widget(headings, iClob(makeHeading_Widget("URL:"))); 1344 addChild_Widget(headings, iClob(makeHeading_Widget("URL:")));
@@ -1371,22 +1346,12 @@ iWidget *makeBookmarkEditor_Widget(void) {
1371 setUrlContent_InputWidget(inputs[1], iTrue); 1346 setUrlContent_InputWidget(inputs[1], iTrue);
1372 addChild_Widget(headings, iClob(makeHeading_Widget("Tags:"))); 1347 addChild_Widget(headings, iClob(makeHeading_Widget("Tags:")));
1373 setId_Widget(addChild_Widget(values, iClob(inputs[2] = new_InputWidget(0))), "bmed.tags"); 1348 setId_Widget(addChild_Widget(values, iClob(inputs[2] = new_InputWidget(0))), "bmed.tags");
1349 addChild_Widget(headings, iClob(makeHeading_Widget("Icon:")));
1350 setId_Widget(addChild_Widget(values, iClob(inputs[3] = new_InputWidget(1))), "bmed.icon");
1374 arrange_Widget(dlg); 1351 arrange_Widget(dlg);
1375 for (int i = 0; i < 3; ++i) { 1352 for (int i = 0; i < 3; ++i) {
1376 as_Widget(inputs[i])->rect.size.x = 100 * gap_UI - headings->rect.size.x; 1353 as_Widget(inputs[i])->rect.size.x = 100 * gap_UI - headings->rect.size.x;
1377 } 1354 }
1378#if 0
1379 iWidget *div = new_Widget(); {
1380 setFlags_Widget(div, arrangeHorizontal_WidgetFlag | arrangeSize_WidgetFlag, iTrue);
1381 addChild_Widget(div, iClob(newKeyMods_LabelWidget("Cancel", SDLK_ESCAPE, 0, "cancel")));
1382 iLabelWidget *accept = addChild_Widget(
1383 div,
1384 iClob(newKeyMods_LabelWidget(
1385 uiTextCaution_ColorEscape "Save Bookmark", SDLK_RETURN, KMOD_PRIMARY, "bmed.accept")));
1386 setFont_LabelWidget(accept, uiLabelBold_FontId);
1387 }
1388 addChild_Widget(dlg, iClob(div));
1389#endif
1390 addChild_Widget( 1355 addChild_Widget(
1391 dlg, 1356 dlg,
1392 iClob(makeDialogButtons_((iMenuItem[]){ { "Cancel", 0, 0, NULL }, 1357 iClob(makeDialogButtons_((iMenuItem[]){ { "Cancel", 0, 0, NULL },
@@ -1411,11 +1376,14 @@ static iBool handleBookmarkCreationCommands_SidebarWidget_(iWidget *editor, cons
1411 const iString *title = text_InputWidget(findChild_Widget(editor, "bmed.title")); 1376 const iString *title = text_InputWidget(findChild_Widget(editor, "bmed.title"));
1412 const iString *url = text_InputWidget(findChild_Widget(editor, "bmed.url")); 1377 const iString *url = text_InputWidget(findChild_Widget(editor, "bmed.url"));
1413 const iString *tags = text_InputWidget(findChild_Widget(editor, "bmed.tags")); 1378 const iString *tags = text_InputWidget(findChild_Widget(editor, "bmed.tags"));
1414 add_Bookmarks(bookmarks_App(), 1379 const iString *icon = collect_String(trimmed_String(text_LabelWidget(findChild_Widget(editor, "bmed.icon"))));
1415 url, 1380 const uint32_t id = add_Bookmarks(bookmarks_App(), url, title, tags, first_String(icon));
1416 title, 1381 if (!isEmpty_String(icon)) {
1417 tags, 1382 iBookmark *bm = get_Bookmarks(bookmarks_App(), id);
1418 first_String(text_LabelWidget(findChild_Widget(editor, "bmed.icon")))); 1383 if (!hasTag_Bookmark(bm, "usericon")) {
1384 addTag_Bookmark(bm, "usericon");
1385 }
1386 }
1419 postCommand_App("bookmarks.changed"); 1387 postCommand_App("bookmarks.changed");
1420 } 1388 }
1421 destroy_Widget(editor); 1389 destroy_Widget(editor);
@@ -1518,22 +1486,6 @@ iWidget *makeFeedSettings_Widget(uint32_t bookmarkId) {
1518 addRadioButton_(types, "feedcfg.type.headings", "New Headings", "feedcfg.type arg:1"); 1486 addRadioButton_(types, "feedcfg.type.headings", "New Headings", "feedcfg.type arg:1");
1519 } 1487 }
1520 addChildFlags_Widget(values, iClob(types), arrangeHorizontal_WidgetFlag | arrangeSize_WidgetFlag); 1488 addChildFlags_Widget(values, iClob(types), arrangeHorizontal_WidgetFlag | arrangeSize_WidgetFlag);
1521#if 0
1522 iWidget *div = new_Widget(); {
1523 setFlags_Widget(div, arrangeHorizontal_WidgetFlag | arrangeSize_WidgetFlag, iTrue);
1524 addChild_Widget(div, iClob(newKeyMods_LabelWidget("Cancel", SDLK_ESCAPE, 0, "cancel")));
1525 setId_Widget(addChild_Widget(div,
1526 iClob(newKeyMods_LabelWidget(
1527 bookmarkId ? uiTextCaution_ColorEscape "Save Settings"
1528 : uiTextCaution_ColorEscape "Subscribe",
1529 SDLK_RETURN,
1530 KMOD_PRIMARY,
1531 format_CStr("feedcfg.accept bmid:%d", bookmarkId)))),
1532 "feedcfg.save");
1533 setFont_LabelWidget(findChild_Widget(div, "feedcfg.save"), uiLabelBold_FontId);
1534 }
1535 addChild_Widget(dlg, iClob(div));
1536#endif
1537 iWidget *buttons = 1489 iWidget *buttons =
1538 addChild_Widget(dlg, 1490 addChild_Widget(dlg,
1539 iClob(makeDialogButtons_( 1491 iClob(makeDialogButtons_(
@@ -1616,18 +1568,6 @@ iWidget *makeIdentityCreation_Widget(void) {
1616 for (size_t i = 0; i < iElemCount(inputs); ++i) { 1568 for (size_t i = 0; i < iElemCount(inputs); ++i) {
1617 as_Widget(inputs[i])->rect.size.x = 100 * gap_UI - headings->rect.size.x; 1569 as_Widget(inputs[i])->rect.size.x = 100 * gap_UI - headings->rect.size.x;
1618 } 1570 }
1619#if 0
1620 iWidget *div = new_Widget(); {
1621 setFlags_Widget(div, arrangeHorizontal_WidgetFlag | arrangeSize_WidgetFlag, iTrue);
1622 addChild_Widget(div, iClob(newKeyMods_LabelWidget("Cancel", SDLK_ESCAPE, 0, "cancel")));
1623 iLabelWidget *accept = addChild_Widget(
1624 div,
1625 iClob(newKeyMods_LabelWidget(
1626 uiTextAction_ColorEscape "Create Identity", SDLK_RETURN, KMOD_PRIMARY, "ident.accept")));
1627 setFont_LabelWidget(accept, uiLabelBold_FontId);
1628 }
1629 addChild_Widget(dlg, iClob(div));
1630#endif
1631 addChild_Widget( 1571 addChild_Widget(
1632 dlg, 1572 dlg,
1633 iClob(makeDialogButtons_((iMenuItem[]){ { "Cancel", 0, 0, NULL }, 1573 iClob(makeDialogButtons_((iMenuItem[]){ { "Cancel", 0, 0, NULL },