Ejemplo n.º 1
0
bool
MaterialSelector::CreateControls(void)
{
	wxFlexGridSizer* sizer = new wxFlexGridSizer(1);
	sizer->AddGrowableCol(0);
	sizer->AddGrowableRow(1);


	m_toolBar = new wxToolBar( this, wxID_ANY, wxDefaultPosition, wxSize(-1,26)); 
	m_toolBar->AddTool(feID_RELOAD_MATERIL_LIST,
		wxBITMAP(RELOAD),wxBITMAP(RELOAD),false,
		0,wxDefaultCoord,NULL, wxT("刷新材质资源"),wxT("刷新材质资源"));
	m_toolBar->Realize();

	sizer->Add( m_toolBar, 0, wxALIGN_LEFT|wxALL, 0 );

	mMaterialList = new wxListCtrl(this, feID_MATERIAL_LIST,
		wxDefaultPosition, wxDefaultSize,
		wxLC_LIST | wxLC_SINGLE_SEL,
		wxDefaultValidator);

	sizer->Add( mMaterialList, 0, wxGROW|wxALL, 0 );

	this->SetSizer(sizer);
	sizer->SetSizeHints(this);

    return true;
}
Ejemplo n.º 2
0
bool
BulletSelector::CreateControls(void)
{
	wxFlexGridSizer* sizer = new wxFlexGridSizer(1);
	sizer->AddGrowableCol(0);
	sizer->AddGrowableRow(1);


	m_toolBar = new wxToolBar( this, wxID_ANY, wxDefaultPosition, wxSize(-1,26)); 
	m_toolBar->AddCheckTool(feID_RELOAD_BULLET_LIST, _("刷新子弹资源"),
		wxBITMAP(RELOAD),wxBITMAP(RELOAD), _("刷新子弹资源"));
	m_toolBar->Realize();

	sizer->Add( m_toolBar, 0, wxALIGN_LEFT|wxALL, 0 );

	mBulletFlowList = new wxListCtrl(this, feID_BULLET_LIST,
		wxDefaultPosition, wxDefaultSize,
		wxLC_LIST | wxLC_SINGLE_SEL,
		wxDefaultValidator);

	sizer->Add( mBulletFlowList, 0, wxGROW|wxALL, 0 );

	this->SetSizer(sizer);
	sizer->SetSizeHints(this);

    return true;
}
ManageFieldTextureDialog::ManageFieldTextureDialog(wxWindow* parent, FieldTilesDataStruct& f) :
	ManageFieldTextureWindow(parent),
	timer(new wxTimer(this)),
	color_selected(-1),
	prevent_event(false) {
	unsigned int i;
	tim = f.parent->tim_data[f.id]; // Unused now
	field.Copy(f);
	for (i=0;i<field.tiles_amount;i++) {
		wstringstream buffer;
		buffer << "Tile Block " << i << endl;
		m_tilechecklist->Append(_(buffer.str()));
		m_tilechecklist->Check(i,field.tiles[i].is_static || field.tiles[i].is_first_of_anim);
	}
	animlist_img = new wxImageList(60,20,true,4);
	animcontrol_loopplay = wxBitmap(wxBITMAP(animcontrolloopplay_image));
	animcontrol_looppause = wxBitmap(wxBITMAP(animcontrollooppause_image));
	animcontrol_noloopplay = wxBitmap(wxBITMAP(animcontrolnoloopplay_image));
	animcontrol_nolooppause = wxBitmap(wxBITMAP(animcontrolnolooppause_image));
	animlist_img->Add(animcontrol_noloopplay);
	animlist_img->Add(animcontrol_nolooppause);
	animlist_img->Add(animcontrol_loopplay);
	animlist_img->Add(animcontrol_looppause);
	anim_tick_time = new unsigned int[field.anim_amount];
	anim_tile_pos = new unsigned int[field.anim_amount];
	anim_play_flag = new unsigned int[field.anim_amount];
	for (i=0;i<field.anim_amount;i++) {
		anim_tick_time[i] = field.anim[i].tile_duration[0];
		anim_tile_pos[i] = 0;
		anim_play_flag[i] = ANIM_PLAYFLAG_LOOP;
	}
	m_animlist->AssignImageList(animlist_img,wxIMAGE_LIST_SMALL);
	for (i=0;i<field.anim_amount;i++)
		m_animlist->InsertItem(i,_(L"Anim ")+wxString::Format(wxT("%u"),i),anim_play_flag[i]);
	m_animlist->SetColumnWidth(0,200);
	m_textureposx->Enable(false);
	m_textureposy->Enable(false);
	m_texturepaletteselection->Enable(false);
	imported_img = wxNullBitmap;
	main_img_base = wxNullImage;
	scale_ratio = 1.0;
	timer->Start(DEFAULT_SPEED);
	Connect(wxEVT_TIMER,wxTimerEventHandler(ManageFieldTextureDialog::OnTimer),NULL,this);
	m_texturepicker->GetTextCtrl()->Connect(wxEVT_SET_FOCUS,wxFocusEventHandler(ManageFieldTextureDialog::OnFocusFileImage),NULL,this);
}
///////////////////
// Tracker Menu
void FrameMain::OnVideoTrackerMenu(wxCommandEvent &event) {
	wxMenu menu( _("FexTracker") );
	AppendBitmapMenuItem(&menu, Video_Track_Points, _("Track points"), _T(""), wxBITMAP(button_track_points));
	menu.AppendSeparator();
	AppendBitmapMenuItem(&menu, Video_Track_Point_Add, _("Add points to movement"), _T(""), wxBITMAP(button_track_point_add));
	AppendBitmapMenuItem(&menu, Video_Track_Point_Del, _("Remove points from movement"), _T(""), wxBITMAP(button_track_point_del));
	menu.AppendSeparator();
	AppendBitmapMenuItem(&menu, Video_Track_Movement, _("Generate movement from points"), _T(""), wxBITMAP(button_track_movement));
	PopupMenu(&menu);
}
Ejemplo n.º 5
0
///////////////
// Constructor
AboutScreen::AboutScreen(wxWindow *parent)
: wxDialog (parent, -1, _("About Aegisub"), wxDefaultPosition, wxSize(300,240), wxSTAY_ON_TOP | wxCAPTION | wxCLOSE_BOX , _("About Aegisub"))
{
	// Get splash
	wxBitmap splash = wxBITMAP(splash);

	// Picture
	wxSizer *PicSizer = new wxBoxSizer(wxHORIZONTAL);
	PicSizer->Add(new BitmapControl(this,splash));

	// Generate about string
	wxString aboutString;
	wxString translatorCredit = _("Translated into LANGUAGE by PERSON\n");
	if (translatorCredit == _T("Translated into LANGUAGE by PERSON\n")) translatorCredit.Clear();
	aboutString += wxString(_T("Aegisub ")) + GetAegisubShortVersionString() + _(" by ArchMage ZeratuL.\n");
	aboutString += _("Copyright (c) 2005-2006 - Rodrigo Braz Monteiro.\n\n");
	aboutString += _("Automation module is Copyright (c) 2005-2006 Niels Martin Hansen (aka jfs).\n");
	aboutString += _("Motion tracker module is Copyright (c) 2006 Hajo Krabbenhoeft (aka Tentacle).\n");
	aboutString += _("Coding by ArchMageZeratuL, jfs, Myrsloik, equinox, Tentacle and nmap.\n");
	aboutString += _("Manual by ArchMage ZeratuL, jfs, movax, Kobi, TheFluff and Jcubed.\n");
	aboutString += _("Forum and bug tracker hosting by Bot1.\n");
	aboutString += _("SVN hosting by BerliOS and Mentar.\n");
	aboutString += translatorCredit;
	aboutString += _("\nSee the help file for full credits.\n");
	aboutString += wxString::Format(_("Built by %s on %s."), GetAegisubBuildCredit().c_str(), GetAegisubBuildTime().c_str());

	// Text sizer
	wxSizer *TextSizer = new wxBoxSizer(wxVERTICAL);
	TextSizer->Add(new wxStaticText(this,-1,aboutString),1);

	// Button sizer
	wxSizer *ButtonSizer = new wxBoxSizer(wxHORIZONTAL);
	ButtonSizer->AddStretchSpacer(1);
#ifndef __WXMAC__
	ButtonSizer->Add(new wxButton(this,wxID_OK),0,0,0);
#else
	wxButton *okButton = new wxButton(this,wxID_OK);
	ButtonSizer->Add(okButton,0,0,0);
	okButton->SetDefault();
#endif

	// Main sizer
	wxSizer *MainSizer = new wxBoxSizer(wxVERTICAL);
	MainSizer->Add(PicSizer,0,wxBOTTOM,5);
	MainSizer->Add(TextSizer,0,wxEXPAND | wxBOTTOM | wxRIGHT | wxLEFT,5);
	MainSizer->Add(new wxStaticLine(this,wxID_ANY),0,wxEXPAND | wxALL,5);
	MainSizer->Add(ButtonSizer,0,wxEXPAND | wxBOTTOM | wxRIGHT | wxLEFT,5);

	// Set sizer
	MainSizer->SetSizeHints(this);
	SetSizer(MainSizer);

	// Draw logo
	Centre();
}
Ejemplo n.º 6
0
wxSizer *InitRenderingConfigDialog( wxWindow *parent, bool call_fit, bool set_sizer )
{
    wxFlexGridSizer *item0 = new wxFlexGridSizer( 1, 0, 0 );
    item0->AddGrowableCol( 0 );
    item0->AddGrowableRow( 0 );

    wxFlexGridSizer *item1 = new wxFlexGridSizer( 1, 0, 0 );
    item1->AddGrowableCol( 0 );
    item1->AddGrowableRow( 1 );

    wxStaticBitmap *item2 = new wxStaticBitmap(parent, -1, wxBITMAP(LOGO));
    wxASSERT( item2 );
    item1->Add( item2, 0, wxGROW|wxALL, 5 );

    wxPropertyGridManager *item3 = new wxPropertyGridManager(parent, ID_RENDERSYSTEMOPTIONS,
            wxDefaultPosition, // position 
            wxSize(80, 174), // size
            wxCLIP_CHILDREN | wxCLIP_SIBLINGS |
            wxPG_BOLD_MODIFIED | // Modified values are drawn in bold font
            wxPG_SPLITTER_AUTO_CENTER | // Automatically center splitter until user manually adjusts it
            wxPG_TOOLTIPS | // Display tooltips for cell text that cannot be shown completely
            wxPG_TOOLBAR | // Include toolbar
            wxPG_HIDE_MARGIN | // Disables margin and hides all expand/collapse buttons
            //wxPG_DESCRIPTION | // Include description box
            //wxPG_COMPACTOR | // Include compactor
            wxPGMAN_DEFAULT_STYLE); // Plus default style
    item3->SetExtraStyle(wxPG_EX_CLASSIC_SPACING | wxPG_EX_NO_MODE_BUTTONS);
    wxASSERT( item3 );
    item1->Add( item3, 0, wxFIXED_MINSIZE|wxGROW|wxALL, 5 );

    item0->Add( item1, 0, wxGROW|wxALL, 5 );

    wxBoxSizer *item4 = new wxBoxSizer( wxHORIZONTAL );

    wxButton *item5 = new wxButton( parent, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 );
    item5->SetDefault();
    item4->Add( item5, 0, wxALIGN_CENTER|wxALL, 5 );

    wxButton *item6 = new wxButton( parent, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
    item4->Add( item6, 0, wxALIGN_CENTER|wxALL, 5 );

    item0->Add( item4, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 );

    if (set_sizer)
    {
        parent->SetSizer( item0 );
        if (call_fit)
            item0->SetSizeHints( parent );
    }
    
    return item0;
}
///////////////////
// Movement Menu
void FrameMain::OnVideoTrackerMenu2(wxCommandEvent &event) {
	wxMenu menu( _("FexMovement") );
	AppendBitmapMenuItem(&menu, Video_Track_Movement_Empty, _("Generate empty movement"), _T(""), wxBITMAP(button_track_move));
	menu.AppendSeparator();
	AppendBitmapMenuItem(&menu, Video_Track_Movement_MoveAll, _("Move subtitle"), _T(""), wxBITMAP(button_track_move));
	menu.AppendSeparator();
	AppendBitmapMenuItem(&menu, Video_Track_Movement_MoveBefore, _("Move subtitle (this frame and preceeding frames)"), _T(""), wxBITMAP(button_track_move));
	AppendBitmapMenuItem(&menu, Video_Track_Movement_MoveOne, _("Move subtitle (this frame)"), _T(""), wxBITMAP(button_track_move));
	AppendBitmapMenuItem(&menu, Video_Track_Movement_MoveAfter, _("Move subtitle (this frame and following frames)"), _T(""), wxBITMAP(button_track_move));
	menu.AppendSeparator();
	AppendBitmapMenuItem(&menu, Video_Track_Split_Line, _("Split line for movement"), _T(""), wxBITMAP(button_track_split_line));
	menu.AppendSeparator();
	AppendBitmapMenuItem(&menu, Video_Track_Link_File, _("Link movement file"), _T(""), wxBITMAP(button_track_move));
	PopupMenu(&menu);
}
Ejemplo n.º 8
0
void SkillObjectTree::CreateImageList(int size)
{
	if ( size == -1 )
	{
		SetImageList(NULL);
		return;
	}
	if ( size == 0 )
		size = m_imageSize;
	else
		m_imageSize = size;

	// Make an image list containing small icons
	wxImageList *images = new wxImageList(size, size, true);

	// should correspond to TreeCtrlIcon_xxx enum
	wxBusyCursor wait;
	wxBitmap bitmaps[8];
	bitmaps[0] = wxBITMAP(SKILL);
	bitmaps[1] = wxBITMAP(ANIMEFFECT);
	bitmaps[2] = wxBITMAP(CAMERASHAKE);
	bitmaps[3] = wxBITMAP(RIBBON);
	bitmaps[4] = wxBITMAP(SOUND);
	bitmaps[5] = wxBITMAP(SCENELIGHT);
	bitmaps[6] = wxBITMAP(ANIMBULLETFLOW);
	bitmaps[7] = wxBITMAP(SKILLPROPERTY);


	int sizeOrig = bitmaps[0].GetWidth();
	for ( size_t i = 0; i < WXSIZEOF(bitmaps); i++ )
	{
		if ( size == sizeOrig )
		{
			images->Add(bitmaps[i]);
		}
		else
		{
			images->Add(wxBitmap(bitmaps[i].ConvertToImage().Rescale(size, size)));
		}
	}

	AssignImageList(images);

}
Ejemplo n.º 9
0
////////////////////////////////////////////////////////////////////
// Method:	Constructor
// Class:	CX10PingAbout
// Purpose:	Initialize my about dialog
// Input:	pointer to reference window
// Output:	nothing	
////////////////////////////////////////////////////////////////////
CX10PingAbout::CX10PingAbout(wxWindow *parent)
               : wxDialog(parent, -1,
                          _("About X10Ping"),
                          wxDefaultPosition,
                          wxDefaultSize,
                          wxDEFAULT_DIALOG_STYLE | wxDIALOG_MODAL)
{
// comment gpahic logo for now
    // logo
    wxBitmap bmp(wxBITMAP(IMG_X10PINGABOUT));
//	bmp.LoadFile( "x10pingabout.bmp", wxBITMAP_TYPE_BMP );
#if !defined(__WXGTK__) && !defined(__WXMOTIF__) && !defined(__WXMAC__)
    bmp.SetMask(new wxMask(bmp, *wxBLUE));
#endif
    wxStaticBitmap *sbmp = new wxStaticBitmap(this, -1, bmp);


    // layout components
	wxBoxSizer *sizer = new wxBoxSizer( wxVERTICAL );
    sizer->Add( sbmp, 0, wxCENTRE | wxALL, 10 );
	sizer->Add( new wxStaticLine(this, -1), 0, wxGROW | wxLEFT | wxRIGHT, 5 );
	sizer->Add( CreateTextSizer(_("X10Ping version 1.560\n"
									"(X10 Ping Network Monitoring Tool)\n"
									"Created by: Larry Lart\n"
									"Email To: [email protected]\n"
									" \n\n"
									" (c) 2006-2007 Larry Lart")),
									0, wxCENTRE | wxALL, 10 );

	sizer->Add( new wxStaticLine(this, -1), 0, wxGROW | wxLEFT | wxRIGHT, 5 );
	sizer->Add( CreateButtonSizer(wxOK), 0, wxCENTRE | wxALL, 10 );

	// activate
	SetSizer(sizer);
	SetAutoLayout(TRUE);
	sizer->SetSizeHints(this);
	sizer->Fit(this);
	Centre(wxBOTH | wxCENTRE_ON_SCREEN);
}
Ejemplo n.º 10
0
bool
SkillObjectEditor::Create(wxWindow *parent, wxWindowID winid,
							   const wxPoint& pos, const wxSize& size,
							   long style)
{
	if (!wxPanel::Create(parent, winid, pos, size, style))
		return false;

	wxFlexGridSizer* sizer = new wxFlexGridSizer(1);
	sizer->AddGrowableCol(0);
	sizer->AddGrowableRow(1);


	m_toolBar = new wxToolBar( this, wxID_ANY, wxDefaultPosition, wxSize(-1,28)); 
	m_toolBar->AddTool(feID_NEW_SKILL,
		wxBITMAP(NEW),wxBITMAP(NEW),false,
		0,wxDefaultCoord,NULL, wxT("创建技能数据"),wxT("创建技能数据"));

	m_toolBar->AddTool(feID_SAVEAS_SKILL,
		wxBITMAP(SAVEAS),wxBITMAP(SAVEAS),false,
		1,wxDefaultCoord,NULL, wxT("另存技能数据"),wxT("另存技能数据"));

	m_toolBar->AddTool(feID_SAVE_SKILL,
		wxBITMAP(SAVE),wxBITMAP(SAVE),false,
		2,wxDefaultCoord,NULL, wxT("保存技能数据"),wxT("保存技能数据"));	

	m_toolBar->AddTool(feID_DELETE_SKILL_ELEMENT,
		wxBITMAP(DELETE),wxBITMAP(DELETE),false,
		3,wxDefaultCoord,NULL, wxT("删除技能元素"),wxT("删除技能元素"));
	
	m_toolBar->AddSeparator();

	m_toolBar->AddTool(feID_NEW_SKILL_EFFECT,
		wxBITMAP(NEWAINIMEFFECT),wxBITMAP(NEWAINIMEFFECT),false,
		4,wxDefaultCoord,NULL, wxT("添加效果元素"),wxT("添加效果元素"));
	m_toolBar->AddTool(feID_NEW_SKILL_CAMERASHAKE,
		wxBITMAP(NEWCAMERASHAKE),wxBITMAP(NEWCAMERASHAKE),false,
		5,wxDefaultCoord,NULL, wxT("新建相机震动元素"),wxT("新建相机震动元素"));
	m_toolBar->AddTool(feID_NEW_SKILL_RIBBON,
		wxBITMAP(NEWRIBBON),wxBITMAP(NEWRIBBON),false,
		6,wxDefaultCoord,NULL, wxT("添加刀光元素"),wxT("添加刀光元素"));
	m_toolBar->AddTool(feID_NEW_SKILL_SOUND,
		wxBITMAP(NEWSOUND),wxBITMAP(NEWSOUND),false,
		7,wxDefaultCoord,NULL, wxT("添加声音元素"),wxT("添加声音元素"));
	m_toolBar->AddTool(feID_NEW_SKILL_SCENELIGHT,
		wxBITMAP(NEWSCENELIGHT),wxBITMAP(NEWSCENELIGHT),false,
		8,wxDefaultCoord,NULL, wxT("添加场景灯光元素"),wxT("添加场景灯光元素"));
	m_toolBar->AddTool(feID_NEW_SKILL_MISSILE,
		wxBITMAP(NEWANIMBULLETFLOW),wxBITMAP(NEWANIMBULLETFLOW),false,
		9,wxDefaultCoord,NULL, wxT("添加导弹元素"),wxT("添加导弹元素"));


	m_toolBar->Realize();
	
	
	sizer->Add( m_toolBar, 0, wxEXPAND, 0 );

	m_SkillObjectTree = new SkillObjectTree( this, ID_SKILL_OBJECT_TREE, wxDefaultPosition, wxDefaultSize);
	sizer->Add( m_SkillObjectTree, 0, wxGROW|wxALL, 0 );

	this->SetSizer( sizer );
	sizer->SetSizeHints(this);

	return true;
}
Ejemplo n.º 11
0
void EnviroFrame::RefreshToolbar()
{
	if (!m_pToolbar)	// safety check
		return;

	// remove any existing buttons
	int count = m_pToolbar->GetToolsCount();
#ifdef __WXMAC__
	// Nino says: I spent a long time with this one, the issue was definitely
	// deep in wxMac, but I don't remember, nor want to repeat it :).  Can we
	// #ifdef __WXMAC__ for the time being to revisit it after Xcode is working?
	while (count >= 1)
	{
		m_pToolbar->DeleteToolByPos(count-1);
		count = m_pToolbar->GetToolsCount();
	}
	m_pToolbar->Realize();
	AddTool(ID_TOOLS_SELECT, wxBITMAP(select), _("Select"), true);
#else
	if (!count)
	{
		AddTool(ID_TOOLS_SELECT, wxBITMAP(select), _("Select"), true);
		count = 1;
	}
	while (count > 1)
	{
		m_pToolbar->DeleteToolByPos(count-1);
		count = m_pToolbar->GetToolsCount();
	}
#endif

	bool bEarth = (g_App.m_state == AS_Orbit);
	bool bTerr = (g_App.m_state == AS_Terrain);

	if (bTerr)
	{
		AddTool(ID_TOOLS_SELECT_BOX, wxBITMAP(select_box), _("Select Box"), true);
		if (g_Options.m_bShowToolsCulture)
		{
			AddTool(ID_TOOLS_SELECT_MOVE, wxBITMAP(select_move), _("Select and Move"), true);
			AddTool(ID_TOOLS_MOVE, wxBITMAP(move), _("Move Objects"), true);
			AddTool(ID_TOOLS_FENCES, wxBITMAP(fence), _("Create Fences"), true);
			AddTool(ID_TOOLS_BUILDINGS, wxBITMAP(building), _("Create Buildings"), true);
			AddTool(ID_TOOLS_POWER, wxBITMAP(route), _("Create Powerlines"), true);
			AddTool(ID_TOOLS_PLANTS, wxBITMAP(tree), _("Create Plants"), true);
		}
		AddTool(ID_TOOLS_POINTS, wxBITMAP(placemark), _("Create Points"), true);
		if (g_Options.m_bShowToolsCulture)
		{
			AddTool(ID_TOOLS_INSTANCES, wxBITMAP(instances), _("Create Instances"), true);
			AddTool(ID_TOOLS_VEHICLES, wxBITMAP(vehicles), _("Create Vehicles"), true);
		}
		AddTool(ID_TOOLS_NAVIGATE, wxBITMAP(nav), _("Navigate"), true);
	}
	if (bTerr || bEarth)
	{
		AddTool(ID_TOOLS_MEASURE, wxBITMAP(distance), _("Measure Distance"), true);
	}
	if (bTerr)
	{
		m_pToolbar->AddSeparator();
		AddTool(ID_VIEW_PROFILE, wxBITMAP(view_profile), _("Elevation Profile"), true);
		AddTool(ID_TOOLS_CONSTRAIN, wxBITMAP(bld_corner), _("Constrain Angles"), true);
	}
	if (g_Options.m_bShowToolsSnapshot)
	{
		m_pToolbar->AddSeparator();
		AddTool(ID_VIEW_SNAPSHOT, wxBITMAP(snap), _("Snapshot"), false);
		AddTool(ID_VIEW_SNAP_AGAIN, wxBITMAP(snap_num), _("Numbered Snapshot"), false);
	}
	if (bTerr || bEarth)
	{
		m_pToolbar->AddSeparator();
		AddTool(ID_FILE_LAYERS, wxBITMAP(layers), _("Show Layer Dialog"), false);
	}
	if (bTerr)
	{
		m_pToolbar->AddSeparator();
		AddTool(ID_VIEW_MAINTAIN, wxBITMAP(maintain), _("Maintain Height"), true);
		AddTool(ID_VIEW_FASTER, wxBITMAP(nav_fast), _("Fly Faster"), false);
		AddTool(ID_VIEW_SLOWER, wxBITMAP(nav_slow), _("Fly Slower"), false);
		AddTool(ID_VIEW_SETTINGS, wxBITMAP(nav_set), _("Camera Dialog"), false);
		AddTool(ID_VIEW_LOCATIONS, wxBITMAP(loc), _("Locations"), false);
	}
	if (m_bEnableEarth)
	{
		m_pToolbar->AddSeparator();
		if (bTerr)
		{
			AddTool(ID_SCENE_EPHEMERIS, wxBITMAP(ephemeris), _("Ephemeris"), false);
			AddTool(ID_SCENE_SPACE, wxBITMAP(space), _("Go to Space"), false);
		}
		AddTool(ID_SCENE_TERRAIN, wxBITMAP(terrain), _("Go to Terrain"), false);
		if (bEarth)
		{
			m_pToolbar->AddSeparator();
			AddTool(ID_EARTH_SHOWSHADING, wxBITMAP(sun), _("Show Sunlight"), true);
			AddTool(ID_EARTH_SHOWAXES, wxBITMAP(axes), _("Axes"), true);
			AddTool(ID_EARTH_TILT, wxBITMAP(tilt), _("Tilt"), true);
			AddTool(ID_EARTH_UNFOLD, wxBITMAP(unfold), _("Unfold"), true);
		}
	}
	if (g_Options.m_bShowToolsTime)
	{
		m_pToolbar->AddSeparator();
		AddTool(ID_TIME_DIALOG, wxBITMAP(time), _("Time"), false);
		AddTool(ID_TIME_FASTER, wxBITMAP(faster), _("Time Faster"), false);
		AddTool(ID_TIME_STOP, wxBITMAP(stop), _("Time Stop"), false);
	}

	m_pToolbar->AddSeparator();
	AddTool(ID_SCENE_SCENEGRAPH, wxBITMAP(sgraph), _("Scene Graph"), false);

	VTLOG1("Realize toolbar.\n");
	m_pToolbar->Realize();

	// "commit" all changes made to wxAuiManager
	wxAuiPaneInfo &api = m_mgr.GetPane(wxT("toolbar"));
	if (api.IsOk())
	{
		wxSize best = m_pToolbar->GetBestSize();
		api.MinSize(best);
		m_mgr.Update();
	}
}
Ejemplo n.º 12
0
void LayerToolBarFunc(wxToolBar *bar)
{
    bar->SetMargins( 1, 1 );

    bar->AddTool( ID_LAYER_CREATE, _("Create"),	  wxBITMAP(layer_create), wxNullBitmap, wxITEM_NORMAL, _("Create New Layer") );
    bar->AddTool( ID_LAYER_LOAD, _("Load"),		  wxBITMAP(layer_open),	  wxNullBitmap, wxITEM_NORMAL, _("Load Layer") );
    bar->AddTool( ID_LAYER_SAVE, _("Save"),		  wxBITMAP(save),		  wxNullBitmap, wxITEM_NORMAL, _("Save Layer") );
    bar->AddTool( ID_LAYER_SAVE_AS, _("Save As"), wxBITMAP(save_as),	  wxNullBitmap, wxITEM_NORMAL, _("Save Layer As...") );
    bar->AddTool( ID_LAYER_DELETE, _("Delete"),	  wxBITMAP(delete1),	  wxNullBitmap, wxITEM_NORMAL, _("Delete Layer") );
    bar->AddSeparator();
    bar->AddTool( ID_LAYER_ZOOM_TO, _("Zoom"),	  wxBITMAP(zoom_to),	  wxNullBitmap, wxITEM_NORMAL, _("Zoom To") );
    bar->AddTool( ID_LAYER_VISIBLE, _("Visible"), wxBITMAP(eye),		  wxNullBitmap, wxITEM_CHECK, _("Toggle Layer Visibility") );
    bar->AddTool( ID_LAYER_TABLE, wxT(""),		  wxBITMAP(grid),		  wxNullBitmap, wxITEM_NORMAL, _("Table of Features") );
    bar->AddTool( ID_LAYER_SHADOW, _("Shadow"),	  wxBITMAP(shadow),		  wxNullBitmap, wxITEM_CHECK, _("Toggle Structure Shadow") );
    bar->AddTool( ID_LAYER_REFRESH, _("Refresh"), wxBITMAP(refresh),	  wxNullBitmap, wxITEM_NORMAL, _("Refresh") );
    bar->AddSeparator();
    bar->AddTool( ID_SHOW_ALL, _("All"),		  wxBITMAP(treeview),	  wxNullBitmap, wxITEM_CHECK, _("Show all elements of every layer") );

    bar->Realize();
}
Ejemplo n.º 13
0
LifeNavigator::LifeNavigator(wxWindow *parent)
             : wxMiniFrame(parent, wxID_ANY,
                           _("Navigation"),
                           wxDefaultPosition,
                           wxDefaultSize,
                           wxCAPTION | wxSIMPLE_BORDER)
{
    wxPanel    *panel  = new wxPanel(this, wxID_ANY);
    wxBoxSizer *sizer1 = new wxBoxSizer(wxVERTICAL);
    wxBoxSizer *sizer2 = new wxBoxSizer(wxHORIZONTAL);

    // create bitmaps and masks for the buttons
    wxBitmap
        bmpn = wxBITMAP(north),
        bmpw = wxBITMAP(west),
        bmpc = wxBITMAP(center),
        bmpe = wxBITMAP(east),
        bmps = wxBITMAP(south);

#if !defined(__WXGTK__) && !defined(__WXMOTIF__) && !defined(__WXMAC__)
    bmpn.SetMask(new wxMask(bmpn, *wxLIGHT_GREY));
    bmpw.SetMask(new wxMask(bmpw, *wxLIGHT_GREY));
    bmpc.SetMask(new wxMask(bmpc, *wxLIGHT_GREY));
    bmpe.SetMask(new wxMask(bmpe, *wxLIGHT_GREY));
    bmps.SetMask(new wxMask(bmps, *wxLIGHT_GREY));
#endif

    // create the buttons and attach tooltips to them
    wxBitmapButton
        *bn = new wxBitmapButton(panel, ID_NORTH,  bmpn),
        *bw = new wxBitmapButton(panel, ID_WEST ,  bmpw),
        *bc = new wxBitmapButton(panel, ID_CENTER, bmpc),
        *be = new wxBitmapButton(panel, ID_EAST ,  bmpe),
        *bs = new wxBitmapButton(panel, ID_SOUTH,  bmps);

#if wxUSE_TOOLTIPS
    bn->SetToolTip(_("Find northernmost cell"));
    bw->SetToolTip(_("Find westernmost cell"));
    bc->SetToolTip(_("Find center of mass"));
    be->SetToolTip(_("Find easternmost cell"));
    bs->SetToolTip(_("Find southernmost cell"));
#endif

    // add buttons to sizers
    sizer2->Add( bw, 0, wxCENTRE | wxWEST,  4 );
    sizer2->Add( bc, 0, wxCENTRE);
    sizer2->Add( be, 0, wxCENTRE | wxEAST,  4 );
    sizer1->Add( bn, 0, wxCENTRE | wxNORTH, 4 );
    sizer1->Add( sizer2 );
    sizer1->Add( bs, 0, wxCENTRE | wxSOUTH, 4 );

    // set the panel and miniframe size
    panel->SetSizer(sizer1);

    sizer1->Fit(panel);
    SetClientSize(panel->GetSize());
    wxSize sz = GetSize();
    SetSizeHints(sz.x, sz.y, sz.x, sz.y);

    // move it to a sensible position
    wxRect parentRect = parent->GetRect();
    wxSize childSize  = GetSize();
    int x = parentRect.GetX() +
            parentRect.GetWidth();
    int y = parentRect.GetY() +
            (parentRect.GetHeight() - childSize.GetHeight()) / 4;
    Move(x, y);

    // done
    Show(true);
}
Ejemplo n.º 14
0
// frame constructor
LifeFrame::LifeFrame() :
  wxFrame( (wxFrame *) NULL, wxID_ANY, _("Life!"), wxDefaultPosition ),
  m_navigator(NULL)
{
    // frame icon
    SetIcon(wxICON(mondrian));

    // menu bar
    wxMenu *menuFile = new wxMenu(wxMENU_TEAROFF);
    wxMenu *menuView = new wxMenu(wxMENU_TEAROFF);
    wxMenu *menuGame = new wxMenu(wxMENU_TEAROFF);
    wxMenu *menuHelp = new wxMenu(wxMENU_TEAROFF);

    menuFile->Append(wxID_NEW, wxEmptyString, _("Start a new game"));
#if wxUSE_FILEDLG
    menuFile->Append(wxID_OPEN, wxEmptyString, _("Open an existing Life pattern"));
#endif
    menuFile->Append(ID_SAMPLES, _("&Sample game..."), _("Select a sample configuration"));
#if ! (defined(__SMARTPHONE__) || defined(__POCKETPC__))
    menuFile->AppendSeparator();
    menuFile->Append(wxID_EXIT);

    menuView->Append(ID_SHOWNAV, _("Navigation &toolbox"), _("Show or hide toolbox"), wxITEM_CHECK);
    menuView->Check(ID_SHOWNAV, true);
    menuView->AppendSeparator();
#endif

    menuView->Append(ID_ORIGIN, _("&Absolute origin"), _("Go to (0, 0)"));
    menuView->Append(ID_CENTER, _("&Center of mass"), _("Find center of mass"));
    menuView->Append(ID_NORTH, _("&North"), _("Find northernmost cell"));
    menuView->Append(ID_SOUTH, _("&South"), _("Find southernmost cell"));
    menuView->Append(ID_EAST, _("&East"), _("Find easternmost cell"));
    menuView->Append(ID_WEST, _("&West"), _("Find westernmost cell"));
    menuView->AppendSeparator();
    menuView->Append(wxID_ZOOM_IN, wxEmptyString, _("Zoom in"));
    menuView->Append(wxID_ZOOM_OUT, wxEmptyString, _("Zoom out"));
    menuView->Append(ID_INFO, _("&Description\tCtrl-D"), _("View pattern description"));

    menuGame->Append(ID_START, _("&Start\tCtrl-S"), _("Start"));
    menuGame->Append(ID_STEP, _("&Next\tCtrl-N"), _("Single step"));
    menuGame->Append(wxID_STOP, wxEmptyString, _("Stop"));
    menuGame->Enable(wxID_STOP, false);
    menuGame->AppendSeparator();
    menuGame->Append(ID_TOPSPEED, _("T&op speed!"), _("Go as fast as possible"));

    menuHelp->Append(wxID_ABOUT, _("&About\tCtrl-A"), _("Show about dialog"));

    wxMenuBar *menuBar = new wxMenuBar();
    menuBar->Append(menuFile, _("&File"));
    menuBar->Append(menuView, _("&View"));
    menuBar->Append(menuGame, _("&Game"));
    menuBar->Append(menuHelp, _("&Help"));
    SetMenuBar(menuBar);

    // tool bar
    wxBitmap tbBitmaps[7];

    tbBitmaps[0] = wxBITMAP(reset);
    tbBitmaps[1] = wxBITMAP(open);
    tbBitmaps[2] = wxBITMAP(zoomin);
    tbBitmaps[3] = wxBITMAP(zoomout);
    tbBitmaps[4] = wxBITMAP(info);
    tbBitmaps[5] = wxBITMAP(play);
    tbBitmaps[6] = wxBITMAP(stop);

    wxToolBar *toolBar = CreateToolBar();
    toolBar->SetMargins(5, 5);
    toolBar->SetToolBitmapSize(wxSize(16, 16));

    ADD_TOOL(wxID_NEW, tbBitmaps[0], wxGetStockLabel(wxID_NEW, wxSTOCK_NOFLAGS), _("Start a new game"));
#ifndef __POCKETPC__
#if wxUSE_FILEDLG
    ADD_TOOL(wxID_OPEN, tbBitmaps[1], wxGetStockLabel(wxID_OPEN, wxSTOCK_NOFLAGS), _("Open an existing Life pattern"));
#endif // wxUSE_FILEDLG

    toolBar->AddSeparator();
    ADD_TOOL(wxID_ZOOM_IN, tbBitmaps[2], wxGetStockLabel(wxID_ZOOM_IN, wxSTOCK_NOFLAGS), _("Zoom in"));
    ADD_TOOL(wxID_ZOOM_OUT, tbBitmaps[3], wxGetStockLabel(wxID_ZOOM_OUT, wxSTOCK_NOFLAGS), _("Zoom out"));
    ADD_TOOL(ID_INFO, tbBitmaps[4], _("Description"), _("Show description"));
    toolBar->AddSeparator();
#endif // __POCKETPC__
    ADD_TOOL(ID_START, tbBitmaps[5], _("Start"), _("Start"));
    ADD_TOOL(wxID_STOP, tbBitmaps[6], _("Stop"), _("Stop"));

    toolBar->Realize();
    toolBar->EnableTool(wxID_STOP, false);    // must be after Realize() !

#if wxUSE_STATUSBAR
    // status bar
    CreateStatusBar(2);
    SetStatusText(_("Welcome to Life!"));
#endif // wxUSE_STATUSBAR

    // game and timer
    m_life     = new Life();
    m_timer    = new wxTimer(this, ID_TIMER);
    m_running  = false;
    m_topspeed = false;
    m_interval = 500;
    m_tics     = 0;

    // We use two different panels to reduce flicker in wxGTK, because
    // some widgets (like wxStaticText) don't have their own X11 window,
    // and thus updating the text would result in a refresh of the canvas
    // if they belong to the same parent.

    wxPanel *panel1 = new wxPanel(this, wxID_ANY);
    wxPanel *panel2 = new wxPanel(this, wxID_ANY);

    // canvas
    m_canvas = new LifeCanvas(panel1, m_life);

    // info panel
    m_text = new wxStaticText(panel2, wxID_ANY,
        wxEmptyString,
        wxDefaultPosition,
        wxDefaultSize,
        wxALIGN_CENTER | wxST_NO_AUTORESIZE);

    wxSlider *slider = new wxSlider(panel2, ID_SLIDER,
        5, 1, 10,
        wxDefaultPosition,
        wxSize(200, wxDefaultCoord),
        wxSL_HORIZONTAL | wxSL_AUTOTICKS);

    UpdateInfoText();

    // component layout
    wxBoxSizer *sizer1 = new wxBoxSizer(wxVERTICAL);
    wxBoxSizer *sizer2 = new wxBoxSizer(wxVERTICAL);
    wxBoxSizer *sizer3 = new wxBoxSizer(wxVERTICAL);

#if wxUSE_STATLINE
    sizer1->Add( new wxStaticLine(panel1, wxID_ANY), 0, wxGROW );
#endif // wxUSE_STATLINE
    sizer1->Add( m_canvas, 1, wxGROW | wxALL, 2 );
#if wxUSE_STATLINE
    sizer1->Add( new wxStaticLine(panel1, wxID_ANY), 0, wxGROW );
#endif // wxUSE_STATLINE
    panel1->SetSizer( sizer1 );
    sizer1->Fit( panel1 );

    sizer2->Add( m_text, 0, wxGROW | wxTOP, 4 );
    sizer2->Add( slider, 0, wxCENTRE | wxALL, 4 );

    panel2->SetSizer( sizer2 );
    sizer2->Fit( panel2 );

    sizer3->Add( panel1, 1, wxGROW );
    sizer3->Add( panel2, 0, wxGROW );
    SetSizer( sizer3 );

#ifndef __WXWINCE__
    sizer3->Fit( this );

    // set minimum frame size
    sizer3->SetSizeHints( this );

    // navigator frame - not appropriate for small devices
    m_navigator = new LifeNavigator(this);
#endif

}
Ejemplo n.º 15
0
void ASSDrawFrame::SetToolBars()
{
    drawtbar = new wxToolBar(this, wxID_ANY, __DPDS__ , wxTB_FLAT | wxTB_TEXT | wxTB_NODIVIDER | wxTB_HORIZONTAL);
	drawtbar->AddTool(TB_CLEAR, _T("Clear"), wxBITMAP(new_), wxNullBitmap, wxITEM_NORMAL, _T(""), TIPS_CLEAR);
    //tbar->AddTool(TB_EDITSRC, _T("Source"), wxBITMAP(src_), wxNullBitmap, wxITEM_NORMAL, _T(""), TIPS_EDITSRC);
    drawtbar->AddCheckTool(TB_PREVIEW, _T("Preview"), wxBITMAP(preview_), wxNullBitmap, _T(""), TIPS_PREVIEW);
    //drawtbar->AddTool(TB_TRANSFORM, _T("Transform"), wxBITMAP(rot_), wxNullBitmap, wxITEM_NORMAL, _T(""), TIPS_TRANSFORM);
	zoomslider = new wxSlider(drawtbar, TB_ZOOMSLIDER, 1000, 100, 5000, __DPDS__ );
	//zoomslider->SetSize(280, zoomslider->GetSize().y);
	zoomslider->Connect(wxEVT_SCROLL_LINEUP, wxScrollEventHandler(ASSDrawFrame::OnZoomSliderChanged), NULL, this);
	zoomslider->Connect(wxEVT_SCROLL_LINEDOWN, wxScrollEventHandler(ASSDrawFrame::OnZoomSliderChanged), NULL, this);
	zoomslider->Connect(wxEVT_SCROLL_PAGEUP, wxScrollEventHandler(ASSDrawFrame::OnZoomSliderChanged), NULL, this);
	zoomslider->Connect(wxEVT_SCROLL_PAGEDOWN, wxScrollEventHandler(ASSDrawFrame::OnZoomSliderChanged), NULL, this);
	zoomslider->Connect(wxEVT_SCROLL_THUMBTRACK, wxScrollEventHandler(ASSDrawFrame::OnZoomSliderChanged), NULL, this);
	zoomslider->Connect(wxEVT_SCROLL_CHANGED, wxScrollEventHandler(ASSDrawFrame::OnZoomSliderChanged), NULL, this);
	drawtbar->AddControl(zoomslider);
    drawtbar->Realize();

    m_mgr.AddPane(drawtbar, wxAuiPaneInfo().Name(_T("drawtbar")).Caption(TBNAME_DRAW).
                  ToolbarPane().Top().Position(0).Dockable(true).LeftDockable(false).RightDockable(false));

    modetbar = new wxToolBar(this, wxID_ANY, __DPDS__ , wxTB_FLAT | wxTB_TEXT | wxTB_NODIVIDER | wxTB_HORIZONTAL);
    modetbar->AddRadioTool(MODE_ARR, _T("Drag"), wxBITMAP(arr_), wxNullBitmap, _T(""), TIPS_ARR);
    modetbar->AddRadioTool(MODE_M, _T("Move"), wxBITMAP(m_), wxNullBitmap, _T(""), TIPS_M);
    //modetbar->AddRadioTool(MODE_N, _T("Move*"), wxBITMAP(n_), wxNullBitmap, _T(""), TIPS_N);
    modetbar->AddRadioTool(MODE_L, _T("Line"), wxBITMAP(l_), wxNullBitmap, _T(""), TIPS_L);
    modetbar->AddRadioTool(MODE_B, _T("Bezier"), wxBITMAP(b_), wxNullBitmap, _T(""), TIPS_B);
    //modetbar->AddRadioTool(MODE_S, _T("Spline"), wxBITMAP(s_), wxNullBitmap, _T(""), TIPS_S);
    //modetbar->AddRadioTool(MODE_P, _T("Extend"), wxBITMAP(p_), wxNullBitmap, _T(""), TIPS_P);
    //modetbar->AddRadioTool(MODE_C, _T("Close"), wxBITMAP(c_), wxNullBitmap, _T(""), TIPS_C);
    modetbar->AddRadioTool(MODE_DEL, _T("Delete"), wxBITMAP(del_), wxNullBitmap, _T(""), TIPS_DEL);
    modetbar->AddRadioTool(MODE_SCALEROTATE, _T("Scale/Rotate"), wxBITMAP(sc_rot_), wxNullBitmap, _T(""), TIPS_SCALEROTATE);
    modetbar->AddRadioTool(MODE_NUT_BILINEAR, _T("Bilinear"), wxBITMAP(nut_), wxNullBitmap, _T(""), TIPS_NUTB);
    //modetbar->AddRadioTool(MODE_NUT_PERSPECTIVE, _T("NUT:P"), wxBITMAP(arr_), wxNullBitmap, _T(""), _T(""));
    modetbar->Realize();

    m_mgr.AddPane(modetbar, wxAuiPaneInfo().Name(_T("modetbar")).Caption(TBNAME_MODE).
                  ToolbarPane().Top().Position(1).Dockable(true).LeftDockable(false).RightDockable(false));

    bgimgtbar = new wxToolBar(this, wxID_ANY, __DPDS__ , wxTB_FLAT | wxTB_TEXT | wxTB_NODIVIDER | wxTB_HORIZONTAL);
	bgimgtbar->SetToolBitmapSize(wxSize(24,15));
    bgimgtbar->AddCheckTool(DRAG_DWG, _T("Pan drawing"), wxBITMAP(pan_shp), wxNullBitmap, _T(""), TIPS_DWG);
    bgimgtbar->AddCheckTool(DRAG_BGIMG, _T("Pan background"), wxBITMAP(pan_bg), wxNullBitmap, _T(""), TIPS_BGIMG);
    //bgimgtbar->AddRadioTool(DRAG_BOTH, _T("Pan both"), wxBITMAP(pan_both), wxNullBitmap, _T(""), TIPS_BOTH);
    bgimgtbar->Realize();

    m_mgr.AddPane(bgimgtbar, wxAuiPaneInfo().Name(_T("bgimgtbar")).Caption(TBNAME_BGIMG).
                  ToolbarPane().Top().Position(2).Dockable(true).LeftDockable(false).RightDockable(false));

}
Ejemplo n.º 16
0
bool
MaterialEditor::Create(wxWindow *parent, wxWindowID winid,
							   const wxPoint& pos, const wxSize& size,
							   long style)
{
	if (!wxPanel::Create(parent, winid, pos, size, style))
		return false;

	wxFlexGridSizer* sizer = new wxFlexGridSizer(1);
	sizer->AddGrowableCol(0);
	sizer->AddGrowableRow(1);


	m_toolBar = new wxToolBar( this, wxID_ANY, wxDefaultPosition, wxSize(-1,28)); 
	m_toolBar->AddTool(feID_NEW_MATERIAL,
		wxBITMAP(NEW),wxBITMAP(NEW),false,
		0,wxDefaultCoord,NULL, wxT("创建材质"),wxT("创建材质"));

	m_toolBar->AddTool(feID_SAVEAS_MATERIAL,
		wxBITMAP(SAVEAS),wxBITMAP(SAVEAS),false,
		1,wxDefaultCoord,NULL, wxT("另存材质"),wxT("另存材质"));

	m_toolBar->AddTool(feID_SAVE_MATERIAL,
		wxBITMAP(SAVE),wxBITMAP(SAVE),false,
		2,wxDefaultCoord,NULL, wxT("保存材质"),wxT("保存材质"));

	m_toolBar->AddTool(feID_DELETE_MATERIAL,
		wxBITMAP(DELETE),wxBITMAP(DELETE),false,
		3,wxDefaultCoord,NULL, wxT("删除材质元素"),wxT("删除材质元素"));

	m_toolBar->AddSeparator();

	m_toolBar->AddTool(feID_NEW_TECHNIQUE,
		wxBITMAP(NEWTECHNIQUE),wxBITMAP(NEWTECHNIQUE),false,
		4,wxDefaultCoord,NULL, wxT("添加Technique"),wxT("添加Technique"));

	m_toolBar->AddTool(feID_NEW_PASS,
		wxBITMAP(NEWPASS),wxBITMAP(NEWPASS),false,
		5,wxDefaultCoord,NULL, wxT("添加Pass"),wxT("添加Pass"));

	m_toolBar->AddTool(feID_NEW_TEXTUREUNIT,
		wxBITMAP(NEWTEXTURE),wxBITMAP(NEWTEXTURE),false,
		6,wxDefaultCoord,NULL, wxT("添加贴图单元"),wxT("添加贴图单元"));

	m_toolBar->Realize();
	
	
	sizer->Add( m_toolBar, 0, wxEXPAND, 0 );

	m_MaterialTree = new MaterialTree( this,ID_MATERIAL_OBJECT_TREE, wxDefaultPosition, wxDefaultSize);
	sizer->Add( m_MaterialTree, 0, wxGROW|wxALL, 0 );

	this->SetSizer( sizer );
	sizer->SetSizeHints(this);

	return true;
}
Ejemplo n.º 17
0
drwnIconFactory::drwnIconFactory() : _defaultIcon(NULL)
{
     // create default bitmap
    _defaultIcon = setIconMask(new wxBitmap(wxBITMAP(nodeGeneric)));

    // register standard types
    _registry["drwnBinaryOpNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeBinaryOp)));
    _registry["drwnBoostedClassifierNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeBoosting)));
    _registry["drwnConcatenationNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeConcatenation)));
    _registry["drwnConfusionMatrixNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeConfusionMatrix)));
    _registry["drwnDataExplorerNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeDataExplorer)));
    _registry["drwnDecisionTreeNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeDecisionTree)));
    _registry["drwnDitherPlotNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeDitherPlot)));
    _registry["drwnExportFilesNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeDirSink)));
    _registry["drwnImportFilesNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeDirSource)));
    _registry["drwnLinearRegressionNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeLinear)));
    _registry["drwnLinearTransformNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeProjection)));
    _registry["drwnLUTDecoderNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeLUTDecoder)));
    _registry["drwnLUTEncoderNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeLUTEncoder)));
    _registry["drwnMultiClassLogisticNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeLogistic)));
    _registry["drwnMultiClassLDANode"] = setIconMask(new wxBitmap(wxBITMAP(nodeMultiClassLDA)));
    _registry["drwnPCANode"] = setIconMask(new wxBitmap(wxBITMAP(nodePCA)));
    _registry["drwnPRCurveNode"] = setIconMask(new wxBitmap(wxBITMAP(nodePRCurve)));
    _registry["drwnRescaleNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeRescale)));
    _registry["drwnRollupNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeRollup)));
    _registry["drwnScatterPlotNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeScatterPlot)));
    _registry["drwnTextFileSinkNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeTextFileSink)));
    _registry["drwnTextFileSourceNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeTextFileSource)));
    _registry["drwnUnaryOpNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeUnaryOp)));

    // matlab plugin
    _registry["drwnMatlabNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeMatlab))); // TODO: move
    _registry["drwnMATFileSinkNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeMATSink))); // TODO: move
    _registry["drwnMATFileSourceNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeMATSource))); // TODO: move

    // opencv plugin
    _registry["drwnOpenCVImageSinkNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeOpenCVSink))); // TODO: move
    _registry["drwnOpenCVImageSourceNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeOpenCVSource))); // TODO: move
    _registry["drwnOpenCVResizeNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeOpenCV))); // TODO: move
    _registry["drwnOpenCVFilterBankNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeOpenCV))); // TODO: move
    _registry["drwnOpenCVIntegralImageNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeOpenCV))); // TODO: move
    _registry["drwnOpenCVNeighborhoodFeaturesNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeOpenCV))); // TODO: move

    // lua plugin
    _registry["drwnLuaNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeLua))); // TODO: move
    _registry["drwnLuaDummyNode"] = setIconMask(new wxBitmap(wxBITMAP(nodeLua))); // TODO: remove

    // python plugin
    _registry["drwnPythonNode"] = setIconMask(new wxBitmap(wxBITMAP(nodePython))); // TODO: move
    _registry["drwnPythonDummyNode"] = setIconMask(new wxBitmap(wxBITMAP(nodePython))); // TODO: remove
}