-enum ExplorerToolId
-{
- none,
- newWindow, goBack, goForward, goUp, goHome,
- browse,
- panelTree, panelSearch,
- addressBar,
- refreshView,
- viewList, viewDetails, viewIcons, viewCards, viewShowcase, viewCustom,
- previewPictures
-};
-
-static char * toolIconNames[] =
-{
- "<:ecere>emblems/unreadable.png", /* none */
-
- "<:ecere>actions/windowNew.png", /* newWindow */
- "<:ecere>actions/goPrevious.png", /* goBack */
- "<:ecere>actions/goNext.png", /* goForward */
- "<:ecere>actions/goUp.png", /* goUp */
- "<:ecere>actions/goHome.png", /* goHome */
-
- ":browse.png", /* browse */
-
- ":panel-tree.png", /* panelTree */
- "<:ecere>actions/editFind.png", /* panelSearch */
-
- "<:ecere>emblems/unreadable.png", /* addressBar */
-
- "<:ecere>actions/viewRefresh.png", /* refreshView */
-
- ":view-list.png", /* viewList */
- ":view-details.png", /* viewDetails */
- ":view-icons.png", /* viewIcons */
- ":view-cards.png", /* viewCards */
- ":view-showcase-right.png", /* viewShowcase */
- ":view-custom.png", /* viewCustom */
-
- "<:ecere>mimetypes/image.png", /* previewPictures */
-
- ""
-};
-
-class ToolButton : Button
-{
- size = Size { 24, 24 };
-
- property int toolId
- {
- set
- {
- bitmap = BitmapResource { fileName = toolIconNames[value], alphaBlend = true };
- id = value;
- }
- }
-
- bool TestToolBar::NotifyClicked(ToolButton button, int x, int y, Modifiers mods)
- {
- NotifyToolClick(this.parent, this, button.id);
- return true;
- }
-}
-
-class ToggleToolButton : ToolButton
-{
- toggle = true;
- size = Size { 24, 24 };
-
- bool TestToolBar::NotifyClicked(ToggleToolButton button, int x, int y, Modifiers mods)
- {
- NotifyToolClick(this.parent, this, button.id);
- return true;
- }
-}
-
-class GroupToggleToolButton : ToolButton
-{
- toggle = true;
- size = Size { 24, 24 };
- GroupToggleToolButton * selected;
- bool TestToolBar::NotifyClicked(GroupToggleToolButton button, int x, int y, Modifiers mods)
- {
- bool configured = (bool)button.selected;
- bool preselection = (configured && (*button.selected));
- bool reclick = preselection ? (*button.selected == button) : false;
- if(configured && preselection && !reclick)
- {
- (*button.selected).checked = false;
- *button.selected = button;
- }
- NotifyToolClick(this.parent, this, button.id);
- return true;
- }
-}
-
-class OptionToolButton : ToolButton
-{
- toggle = true;
- size = Size { 24, 24 };
- OptionToolButton * selected;
- bool TestToolBar::NotifyClicked(OptionToolButton button, int x, int y, Modifiers mods)
- {
- bool configured = (bool)button.selected;
- bool preselection = (configured && (*button.selected));
- bool reclick = preselection ? (*button.selected == button) : false;
- if(configured && !preselection)
- *button.selected = button;
- else if(configured && !reclick)
- {
- (*button.selected).checked = false;
- *button.selected = button;
- }
- button.checked = true;
- if(!reclick)
- NotifyToolClick(this.parent, this, button.id);
- return true;
- }
-}
-
-class TestToolBar : Window
-{
- int xL, xR;
-
- borderStyle = bevel;
- inactive = true;
- background = activeBorder;
- size = Size { h = 32 };
- anchor = Anchor { left = 0, top = 0, right = 0 };
-
- virtual void Window::NotifyToolClick(TestToolBar toolBar, int id);
-
- xL = 0;
-
- ToolButton newWindow { this, anchor = { left = (xL += 20) }, toolId = ExplorerToolId::newWindow };
-
- ToolButton goBack { this, anchor = { left = (xL += 46) }, toolId = ExplorerToolId::goBack };
- ToolButton goForward { this, anchor = { left = (xL += 26) }, toolId = ExplorerToolId::goForward };
- ToolButton goUp { this, anchor = { left = (xL += 30) }, toolId = ExplorerToolId::goUp };
- ToolButton goHome { this, anchor = { left = (xL += 30) }, toolId = ExplorerToolId::goHome };
-
- GroupToggleToolButton panelTree { this, anchor = { left = (xL += 46) }, toolId = ExplorerToolId::panelTree, selected = &selectedPanel, checked = true };
- GroupToggleToolButton panelSearch { this, anchor = { left = (xL += 26) }, toolId = ExplorerToolId::panelSearch, selected = &selectedPanel };
- GroupToggleToolButton selectedPanel;
- selectedPanel = panelTree;
-
- xR = 0;
-
- OptionToolButton viewList { this, anchor = { right = (xR += 20) }, toolId = ExplorerToolId::viewList, selected = &selectedView, checked = true };
- OptionToolButton viewDetails { this, anchor = { right = (xR += 26) }, toolId = ExplorerToolId::viewDetails, selected = &selectedView };
- OptionToolButton viewIcons { this, anchor = { right = (xR += 26) }, toolId = ExplorerToolId::viewIcons, selected = &selectedView };
- OptionToolButton viewTiles { this, anchor = { right = (xR += 26) }, toolId = ExplorerToolId::viewCards, selected = &selectedView };
- OptionToolButton viewShowcase { this, anchor = { right = (xR += 26) }, toolId = ExplorerToolId::viewShowcase, selected = &selectedView };
- OptionToolButton selectedView;
- selectedView = viewList;
-
- ToggleToolButton previewPictures { this, anchor = { right = (xR += 46) }, toolId = ExplorerToolId::previewPictures };