/* PaletteEntryPanel::PaletteEntryPanel * PaletteEntryPanel class constructor *******************************************************************/ PaletteEntryPanel::PaletteEntryPanel(wxWindow* parent) : EntryPanel(parent, "palette") { // Add palette canvas pal_canvas = new PaletteCanvas(this, -1); pal_canvas->allowSelection(1); sizer_main->Add(pal_canvas->toPanel(this), 1, wxEXPAND, 0); // Setup custom menu menu_custom = new wxMenu(); fillCustomMenu(menu_custom); custom_menu_name = "Palette"; // --- Setup custom toolbar groups --- // Palette SToolBarGroup* group_palette = new SToolBarGroup(toolbar, "Palette", true); group_palette->addActionButton("pal_prev", "Previous Palette", "left", ""); text_curpal = new wxStaticText(group_palette, -1, "XX/XX"); group_palette->addCustomControl(text_curpal); group_palette->addActionButton("pal_next", "Next Palette", "right", ""); toolbar->addGroup(group_palette); // Current Palette string actions = "ppal_moveup;ppal_movedown;ppal_duplicate;ppal_remove;ppal_removeothers"; toolbar->addActionGroup("Palette Organisation", wxSplit(actions, ';')); // Colour Operations actions = "ppal_colourise;ppal_tint;ppal_invert;ppal_tweak"; toolbar->addActionGroup("Colours", wxSplit(actions, ';')); // Palette Operations actions = "ppal_addcustom;ppal_exportas;ppal_importfrom;ppal_test;ppal_generate"; toolbar->addActionGroup("Palette Operations", wxSplit(actions, ';')); // Bind events pal_canvas->Bind(wxEVT_LEFT_DOWN, &PaletteEntryPanel::onPalCanvasMouseEvent, this); pal_canvas->Bind(wxEVT_RIGHT_DOWN, &PaletteEntryPanel::onPalCanvasMouseEvent, this); // Init variables cur_palette = 0; Layout(); }
/* GfxEntryPanel::GfxEntryPanel * GfxEntryPanel class constructor *******************************************************************/ GfxEntryPanel::GfxEntryPanel(wxWindow* parent) : EntryPanel(parent, "gfx") { // Init variables prev_translation.addRange(TRANS_PALETTE, 0); offset_changing = false; // Add gfx canvas gfx_canvas = new GfxCanvas(this, -1); sizer_main->Add(gfx_canvas->toPanel(this), 1, wxEXPAND, 0); gfx_canvas->setViewType(GFXVIEW_DEFAULT); gfx_canvas->allowDrag(true); gfx_canvas->allowScroll(true); // Offsets spin_xoffset = new wxSpinCtrl(this, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxTE_PROCESS_ENTER, SHRT_MIN, SHRT_MAX, 0); spin_yoffset = new wxSpinCtrl(this, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS|wxTE_PROCESS_ENTER, SHRT_MIN, SHRT_MAX, 0); spin_xoffset->SetMinSize(wxSize(64, -1)); spin_yoffset->SetMinSize(wxSize(64, -1)); sizer_bottom->Add(new wxStaticText(this, -1, "Offsets:"), 0, wxALIGN_CENTER_VERTICAL, 0); sizer_bottom->Add(spin_xoffset, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 4); sizer_bottom->Add(spin_yoffset, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 4); // Gfx (offset) type string offset_types[] ={ "Auto", "Graphic", "Sprite", "HUD" }; choice_offset_type = new wxChoice(this, -1, wxDefaultPosition, wxDefaultSize, 4, offset_types); choice_offset_type->SetSelection(0); sizer_bottom->Add(choice_offset_type, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 4); // Auto offset btn_auto_offset = new wxBitmapButton(this, -1, Icons::getIcon(Icons::GENERAL, "offset")); btn_auto_offset->SetToolTip("Modify Offsets..."); sizer_bottom->Add(btn_auto_offset, 0, wxALIGN_CENTER_VERTICAL); sizer_bottom->AddStretchSpacer(); // Aspect ratio correction checkbox cb_arc = new wxCheckBox(this, -1, "Aspect Ratio Correction"); cb_arc->SetValue(gfx_arc); sizer_bottom->Add(cb_arc, 0, wxEXPAND, 0); sizer_bottom->AddSpacer(8); // Tile checkbox cb_tile = new wxCheckBox(this, -1, "Tile"); sizer_bottom->Add(cb_tile, 0, wxEXPAND, 0); sizer_bottom->AddSpacer(8); // Image selection buttons btn_nextimg = new wxBitmapButton(this, -1, Icons::getIcon(Icons::GENERAL, "right")); btn_previmg = new wxBitmapButton(this, -1, Icons::getIcon(Icons::GENERAL, "left")); text_curimg = new wxStaticText(this, -1, "Image XX/XX"); btn_nextimg->Show(false); btn_previmg->Show(false); text_curimg->Show(false); // Palette chooser listenTo(theMainWindow->getPaletteChooser()); // Custom menu menu_custom = new wxMenu(); fillCustomMenu(menu_custom); custom_menu_name = "Graphic"; // Custom toolbar custom_toolbar_actions = "pgfx_mirror;pgfx_flip;pgfx_rotate;pgfx_translate;pgfx_colourise;pgfx_tint;pgfx_pngopt"; setupToolbar(); // Bind Events slider_zoom->Bind(wxEVT_SLIDER, &GfxEntryPanel::onZoomChanged, this); spin_xoffset->Bind(wxEVT_SPINCTRL, &GfxEntryPanel::onXOffsetChanged, this); spin_yoffset->Bind(wxEVT_SPINCTRL, &GfxEntryPanel::onYOffsetChanged, this); spin_xoffset->Bind(wxEVT_TEXT_ENTER, &GfxEntryPanel::onXOffsetChanged, this); spin_yoffset->Bind(wxEVT_TEXT_ENTER, &GfxEntryPanel::onYOffsetChanged, this); choice_offset_type->Bind(wxEVT_CHOICE, &GfxEntryPanel::onOffsetTypeChanged, this); cb_tile->Bind(wxEVT_CHECKBOX, &GfxEntryPanel::onTileChanged, this); cb_arc->Bind(wxEVT_CHECKBOX, &GfxEntryPanel::onARCChanged, this); Bind(wxEVT_GFXCANVAS_OFFSET_CHANGED, &GfxEntryPanel::onGfxOffsetChanged, this, gfx_canvas->GetId()); btn_nextimg->Bind(wxEVT_BUTTON, &GfxEntryPanel::onBtnNextImg, this); btn_previmg->Bind(wxEVT_BUTTON, &GfxEntryPanel::onBtnPrevImg, this); btn_auto_offset->Bind(wxEVT_BUTTON, &GfxEntryPanel::onBtnAutoOffset, this); // Apply layout Layout(); }