FileDialog::FileDialog(axApp* app, axWindow* parent, const axRect& rect, const string& folder_path): axPanel(app, parent, rect) { string path = app->GetCurrentAppDirectory(); if(folder_path != "") { _dirNavigation = new DirectoryNavigation(folder_path); } else { _dirNavigation = new DirectoryNavigation("/home"); } _folderContent = new FolderContent(app, this, axRect(axPoint(0, 31), rect.size - axSize(0, 31 + 30)), _dirNavigation); axButtonInfo btn_info(string(path + "ressources/axDialogBtn.axobj")); function<void (axButtonMsg)> btnFct(GetOnBackBtn()); axButton* b = new axButton(app, this, axRect(5, 5, 22, 22), axButtonEvents(btnFct), btn_info, "", "<", axBUTTON_SINGLE_IMG | axBUTTON_IMG_RESIZE); b->SetBackgroundAlpha(0.5); btnFct = GetOnCancel(); b = new axButton(app, this, axRect(rect.size.x - 130, rect.size.y - 26, 45, 20), axButtonEvents(btnFct), btn_info, "", "Cancel", axBUTTON_SINGLE_IMG | axBUTTON_IMG_RESIZE); b->SetBackgroundAlpha(0.5); b = new axButton(app, this, axRect(rect.size.x - 60, rect.size.y - 26, 45, 20), axButtonEvents(), btn_info, "", "Select", axBUTTON_SINGLE_IMG | axBUTTON_IMG_RESIZE); b->SetBackgroundAlpha(0.5); }
OpenDialog::OpenDialog(const ax::Rect& rect) { // Create window. win = ax::Window::Create(rect); win->event.OnPaint = ax::WBind<ax::GC>(this, &OpenDialog::OnPaint); win->event.OnGlobalClick = ax::WBind<ax::Window::Event::GlobalClick>(this, &OpenDialog::OnGlobalClick); win->event.OnMouseLeftDown = ax::WBind<ax::Point>(this, &OpenDialog::OnMouseLeftDown); win->event.OnAssignToWindowManager = ax::WBind<int>(this, &OpenDialog::OnAssignToWindowManager); // win->event.GrabGlobalMouse(); // ax::App::GetInstance().GetPopupManager()->AddGlobalClickListener(win); ax::DropMenu::Info menu_info; menu_info.normal = ax::Color(240, 240, 240); menu_info.hover = ax::Color(246, 246, 246); menu_info.font_color = ax::Color(0.0); menu_info.selected = ax::Color(41, 222, 255); menu_info.selected_hover = ax::Color(41, 226, 255); menu_info.selected_font_color = ax::Color(0.0); menu_info.contour = ax::Color(0.86); menu_info.separation = ax::Color(0.86); menu_info.up_down_arrow = ax::Color(0.35); menu_info.right_arrow = ax::Color(0.70); menu_info.item_height = 35; ax::os::Path dir("layouts/"); // ax::os::Directory dir; // dir.Goto("layouts/"); // std::vector<ax::os::File> files = dir.GetContent(); std::vector<ax::os::Path> files = dir.GetDirectoryContent(); std::vector<std::string> layout_files; for (auto& n : files) { // ax::console::Print(n.name); // if (n.ext == "xml") { if (n.GetExtension() == "xml") { layout_files.push_back(n.GetAbsolutePath()); } } for (auto& n : layout_files) { ax::console::Print(n); } // ax::Size fsize(ax::App::GetInstance().GetFrameSize()); ax::Size size(at::editor::MainWindow::WIDGET_MENU_WIDTH, rect.size.h); _menu = ax::shared<ax::DropMenu>( ax::Rect(ax::Point(0, 0), size), GetOnMenuSelection(), menu_info, layout_files); win->node.Add(_menu); ax::Size menu_size(_menu->GetWindow()->dimension.GetSize()); auto open = ax::shared<ax::Button>(ax::Rect(rect.position.x, menu_size.h, size.w * 0.5, 30), GetOnOpen(), ax::Button::Info(), "", "Open"); auto cancel = ax::shared<ax::Button>( ax::Rect(ax::Point(size.w * 0.5, menu_size.h), ax::Size(size.w * 0.5, 30)), GetOnCancel(), ax::Button::Info(), "", "Cancel"); win->node.Add(open); win->node.Add(cancel); win->dimension.SetPosition(ax::Point(0, rect.position.y)); // win->dimension.SetSize(ax::Size(menu_size.w, menu_size.h + 30)); // // std::string font_path; // ax::TextBox::Info txt_info; // txt_info.normal = ax::Color(0.85); // txt_info.hover = ax::Color(0.85); // txt_info.highlight = ax::Color(0.6, 0.2); // This needs to be // transparent (alpha < 1.0). // txt_info.selected = ax::Color(0.85); // txt_info.selected_shadow = ax::Color(0.85); // txt_info.cursor = ax::Color(0.0); // txt_info.contour = ax::Color(0.3);; // txt_info.font_color = ax::Color(0.0); // // _txtBox = ax::shared<ax::TextBox>(ax::Rect(10, 10, 200, 30), // ax::TextBox::Events(), txt_info, "", //"default.xml"); // win->node.Add(_txtBox); // // auto save = ax::shared<ax::Button>(ax::Rect(10, 50, 60, 30), // GetOnSave(), ax::Button::Info(), "", //"Save"); // auto cancel = ax::shared<ax::Button>(ax::Rect(10, 120, 60, 30), // GetOnCancel(), ax::Button::Info(), //"", "Cancel"); // // win->node.Add(save); // win->node.Add(cancel); }