From: Shamus Hammons Date: Tue, 2 Sep 2008 13:08:53 +0000 (+0000) Subject: Fix cursors so that the use proper masks, added char window toggle, X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=ttedit;a=commitdiff_plain;h=af29adaa19fd2695bc4e10371e4c819eaf641bae Fix cursors so that the use proper masks, added char window toggle, changed scroll from dedicated tool to MMB drag. --- diff --git a/res/cur1.xpm b/res/cur1.xpm index 2d4038c..20b4cac 100755 --- a/res/cur1.xpm +++ b/res/cur1.xpm @@ -1,28 +1,29 @@ /* XPM */ -static const char * cur1_xpm[] = { -"32 32 2 1", -" g #000000", -". g #FFFFFF", -" ...............................", -" ..............................", -" .............................", -" ............................", -" ...........................", -" ..........................", -" .........................", -" ........................", -" .......................", -" ......................", -" .....................", -" ....................", -" .........................", -" .........................", -" .. ........................", -" ... ........................", -" ..... .......................", -"...... .......................", -"....... ......................", -"....... .......................", +static const char *cur1_xpm[]={ +"32 32 3 1", +". c None", +"# c #000000", +"a c #ffffff", +".#..............................", +"#a#.............................", +"#aa#............................", +"#aaa#...........................", +"#aaaa#..........................", +"#aaaaa#.........................", +"#aaaaaa#........................", +"#aaaaaaa#.......................", +"#aaaaaaaa#......................", +"#aaaaaaaaa#.....................", +"#aaaaaaaaaa#....................", +"#aaaaaa####.....................", +"#aaaaaa#........................", +"#aa##aaa#.......................", +"#a#.#aaa#.......................", +".#...#aaa#......................", +".....#aaa#......................", +"......#a#.......................", +".......#........................", +"................................", "................................", "................................", "................................", diff --git a/res/cur2.xpm b/res/cur2.xpm index 446c74b..a966a26 100755 --- a/res/cur2.xpm +++ b/res/cur2.xpm @@ -1,33 +1,34 @@ /* XPM */ -static const char * cur2_xpm[] = { -"32 32 2 1", -" g #000000", -". g #FFFFFF", -" ...............................", -" ..............................", -" .............................", -" ............................", -" ...........................", -" ..........................", -" .........................", -" ........................", -" .......................", -" ......................", -" .....................", -" ....................", -" .........................", -" ...... .............", -" .. ..... ............", -" ... ..... ... ............", -" ..... .... ... ............", -"...... .... ... ............", -"....... ... ............", -"....... .... .............", -"............. .................", -"............. .................", -"............. .................", -"................................", -"................................", +static const char *cur2_xpm[]={ +"32 32 3 1", +". c None", +"# c #000000", +"a c #ffffff", +".#..............................", +"#a#.............................", +"#aa#............................", +"#aaa#...........................", +"#aaaa#..........................", +"#aaaaa#.........................", +"#aaaaaa#........................", +"#aaaaaaa#.......................", +"#aaaaaaaa#......................", +"#aaaaaaaaa#.....................", +"#aaaaaaaaaa#....................", +"#aaaaaa####.....................", +"#aaaaaa#........................", +"#aa##aaa#..#######..............", +"#a#.#aaa#..#aaaaaa#.............", +".#...#aaa#.#aaaaaaa#............", +".....#aaa#.#aa###aa#............", +"......#a#..#aa#.#aa#............", +".......#...#aa###aa#............", +"...........#aaaaaaa#............", +"...........#aaaaaa#.............", +"...........#aa####..............", +"...........#aa#.................", +"...........#aa#.................", +"...........####.................", "................................", "................................", "................................", diff --git a/res/cur3.xpm b/res/cur3.xpm index b920e6b..f842d8f 100755 --- a/res/cur3.xpm +++ b/res/cur3.xpm @@ -1,37 +1,38 @@ /* XPM */ -static const char * cur3_xpm[] = { -"32 32 2 1", -" g #FFFFFF", -". g #000000", -" .. ", -" .. ", -" .... ", -" .... ", -" ...... ", -" . .. . ", -" . .. . ", -" .. ", -" .. .. .. ", -" ... . . ... ", -"......... .. ......... ", -"......... .. ......... ", -" ... . . ... ", -" .. .. .. ", -" .. ", -" . .. . ", -" . .. . ", -" ...... ", -" ..... ", -" .... ", -" .. ", -" .. ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" ", -" "}; +static const char *cur3_xpm[]={ +"32 32 3 1", +". c None", +"# c #000000", +"a c #ffffff", +"...........##...................", +"..........#aa#..................", +"..........#aa#..................", +".........#aaaa#.................", +".........#aaaa#.................", +"........#aaaaaa#................", +"......###a#aa#a###..............", +"......#a###aa###a#..............", +".....####.#aa#.####.............", +"...##aa#..#aa#..#aa##...........", +".##aaa####a##a####aaa##.........", +"#aaaaaaaaa#aa#aaaaaaaaa#........", +"#aaaaaaaaa#aa#aaaaaaaaa#........", +".##aaa####a##a####aaa##.........", +"...##aa#..#aa#..#aa##...........", +".....####.#aa#.####.............", +"......#a###aa###a#..............", +"......###a#aa#a###..............", +"........#aaaaaa#................", +"........#aaaaa#.................", +".........#aaaa#.................", +"..........#aa#..................", +"..........#aa#..................", +"...........##...................", +"................................", +"................................", +"................................", +"................................", +"................................", +"................................", +"................................", +"................................"}; diff --git a/res/cur4.xpm b/res/cur4.xpm index a7527c7..f34992b 100755 --- a/res/cur4.xpm +++ b/res/cur4.xpm @@ -1,37 +1,38 @@ /* XPM */ -static const char * cur4_xpm[] = { -"32 32 2 1", -" g #FFFFFF", -". g #000000", -" .. ", -" .. ", -"...... ", -"...... ", -" .. ", -" .. ", -" ... ", -" .. .. .. ", -" .. .. .. ", -" .... . . . ", -" .... . . . ", -"...... . . . ", -". .. . . . . ", -" .. . . ", -" .. . . ", -" .. . . ", -" .. .. .. ", -" .. .. ... ", -" .. ... . ", -". .. . . ", -"...... .. ", -" .... ... ", -" .... ... ", -" .. ... ", -" .. . ", -" ", -" ", -"...... ", -"...... ", -" ", -" ", -" "}; +static const char *cur4_xpm[]={ +"32 32 3 1", +". c None", +"# c #000000", +"a c #ffffff", +"..####..........................", +"..#aa#..........................", +"###aa###........................", +"#aaaaaa#........................", +"#aaaaaa#........................", +"###aa###........................", +"..#aa#........###...............", +"..####......##aaa##.............", +"..#aa#.....#aa###aa#............", +"..#aa#....#aa##..#aa#...........", +".#aaaa#...#a##a#..#a#...........", +".#aaaa#..#a##a#....#a#..........", +"#aaaaaa#.#a#a#.....#a#..........", +"#a#aa#a#.#a#a#.....#a#..........", +".##aa##..#a##......#a#..........", +"..#aa#...#a#.......#a#..........", +"..#aa#....#a#.....#a#...........", +"..#aa#....#aa#...#aa#...........", +"..#aa#.....#aa###aaa#...........", +".##aa##.....##aaa###a#..........", +"#a#aa#a#......###...#a##........", +"#aaaaaa#.............#aa#.......", +".#aaaa#..............#aaa#......", +".#aaaa#...............#aaa#.....", +"..#aa#.................#aaa#....", +"..#aa#..................#a#.....", +"...##....................#......", +"########........................", +"#aaaaaa#........................", +"#aaaaaa#........................", +"########........................", +"................................"}; diff --git a/res/cur5.xpm b/res/cur5.xpm index 8620aaf..e13a52e 100755 --- a/res/cur5.xpm +++ b/res/cur5.xpm @@ -1,31 +1,32 @@ /* XPM */ -static const char * cur5_xpm[] = { -"32 32 2 1", -" g #000000", -". g #FFFFFF", -" ...............................", -" ..............................", -" .............................", -" ............................", -" ...........................", -" ..........................", -" .........................", -" ........................", -" .......................", -" ......................", -" .....................", -" ....................", -" .........................", -" ...... ..................", -" .. .... .................", -" ... ..... ..................", -" ..... .......................", -"...... ..... ..............", -"....... ... .............", -"....... .... .. .............", -"............. .. .............", -"............. .............", -".............. ..............", +static const char *cur5_xpm[]={ +"32 32 3 1", +". c None", +"# c #000000", +"a c #ffffff", +".#..............................", +"#a#.............................", +"#aa#............................", +"#aaa#...........................", +"#aaaa#..........................", +"#aaaaa#.........................", +"#aaaaaa#........................", +"#aaaaaaa#.......................", +"#aaaaaaaa#......................", +"#aaaaaaaaa#...#.................", +"#aaaaaaaaaa#.#a#................", +"#aaaaaa####.##a##...............", +"#aaaaaa#...#aaaaa#..............", +"#aa##aaa#...##a##...............", +"#a#.#aaa#....#a#................", +".#...#aaa#...####...............", +".....#aaa#..#aaaa#..............", +"......#a#..#aaaaaa#.............", +".......#...#aa##aa#.............", +"...........#aa##aa#.............", +"...........#aaaaaa#.............", +"............#aaaa#..............", +".............####...............", "................................", "................................", "................................", diff --git a/res/cur6.xpm b/res/cur6.xpm index 018918e..b6ae043 100755 --- a/res/cur6.xpm +++ b/res/cur6.xpm @@ -1,32 +1,33 @@ /* XPM */ -static const char * cur6_xpm[] = { -"32 32 2 1", -" g #000000", -". g #FFFFFF", -" ...............................", -" ..............................", -" .............................", -" ............................", -" ...........................", -" ..........................", -" .........................", -" ........................", -" .......................", -" ......................", -" .....................", -" ....................", -" ........ ...............", -" ....... ..............", -" .. ...... ..............", -" ... ..... .. .............", -" ..... .... .. .............", -"...... ... .... ............", -"....... .. .... ............", -"....... .. ...... ...........", -"........... ...... ...........", -".......... ........ ..........", -".......... ..........", -"........... ...........", +static const char *cur6_xpm[]={ +"32 32 3 1", +". c None", +"# c #000000", +"a c #ffffff", +".#..............................", +"#a#.............................", +"#aa#............................", +"#aaa#...........................", +"#aaaa#..........................", +"#aaaaa#......#..................", +"#aaaaaa#....#a#.................", +"#aaaaaaa#..##a##................", +"#aaaaaaaa##aaaaa#...............", +"#aaaaaaaaa###a##................", +"#aaaaaaaaaa##a#.................", +"#aaaaaa####..#.##...............", +"#aaaaaa#......#aa#..............", +"#aa##aaa#....#aaaa#.............", +"#a#.#aaa#....#aaaa#.............", +".#...#aaa#..#aa##aa#............", +".....#aaa#..#aa##aa#............", +"......#a#..#aa#..#aa#...........", +".......#...#aa#..#aa#...........", +"..........#aa######aa#..........", +"..........#aaaaaaaaaa#..........", +"...........#aaaaaaaa#...........", +"............########............", +"................................", "................................", "................................", "................................", diff --git a/res/cur7.xpm b/res/cur7.xpm index 6dd57b7..7271575 100755 --- a/res/cur7.xpm +++ b/res/cur7.xpm @@ -1,33 +1,34 @@ /* XPM */ -static const char * cur7_xpm[] = { -"32 32 2 1", -" g #000000", -". g #FFFFFF", -" ...............................", -" ..............................", -" .............................", -" ............................", -" ...........................", -" ..........................", -" .........................", -" ........................", -" .......................", -" ......................", -" .....................", -" ....................", -" .........................", -" .........................", -" .. ........................", -" ... ... ...... ...........", -" ..... .. .... ...........", -"...... ... ............", -"....... ... .............", -"....... .... .............", -"............. .............", -"............. .............", -"............ ............", -"........... .... ...........", -"........... ...... ...........", +static const char *cur7_xpm[]={ +"32 32 3 1", +". c None", +"# c #000000", +"a c #ffffff", +".#..............................", +"#a#.............................", +"#aa#............................", +"#aaa#...........................", +"#aaaa#..........................", +"#aaaaa#.........................", +"#aaaaaa#........................", +"#aaaaaaa#.......................", +"#aaaaaaaa#......................", +"#aaaaaaaaa#.....................", +"#aaaaaaaaaa#....................", +"#aaaaaa####.#####...............", +"#aaaaaa#...#aaaaa#..............", +"#aa##aaa#...#####...............", +"#a#.#aaa#.......................", +".#...#aaa#...####...............", +".....#aaa#..#aaaa#..............", +"......#a#..#aaaaaa#.............", +".......#...#aa##aa#.............", +"...........#aa##aa#.............", +"...........#aaaaaa#.............", +"............#aaaa#..............", +".............####...............", +"................................", +"................................", "................................", "................................", "................................", diff --git a/res/cur8.xpm b/res/cur8.xpm index 3786129..9ac8f5a 100755 --- a/res/cur8.xpm +++ b/res/cur8.xpm @@ -1,33 +1,34 @@ /* XPM */ -static const char * cur8_xpm[] = { -"32 32 2 1", -" g #000000", -". g #FFFFFF", -" ...............................", -" ..............................", -" .............................", -" ............................", -" ...........................", -" ..........................", -" .........................", -" ........................", -" .......................", -" ......................", -" .....................", -" ....................", -" .........................", -" .........................", -" .. ........................", -" ... ... ...... ...........", -" ..... .. .... ...........", -"...... ... ............", -"....... ... .............", -"....... .... .............", -"............. .............", -"............. .............", -"............ ............", -"........... .... ...........", -"........... ...... ...........", +static const char *cur8_xpm[]={ +"32 32 3 1", +". c None", +"# c #000000", +"a c #ffffff", +".#..............................", +"#a#.............................", +"#aa#............................", +"#aaa#...........................", +"#aaaa#..........................", +"#aaaaa#.........................", +"#aaaaaa#........................", +"#aaaaaaa#..#####................", +"#aaaaaaaa##aaaaa#...............", +"#aaaaaaaaa######................", +"#aaaaaaaaaa#....................", +"#aaaaaa####....##...............", +"#aaaaaa#......#aa#..............", +"#aa##aaa#....#aaaa#.............", +"#a#.#aaa#....#aaaa#.............", +".#...#aaa#..#aa##aa#............", +".....#aaa#..#aa##aa#............", +"......#a#..#aa#..#aa#...........", +".......#...#aa#..#aa#...........", +"..........#aa######aa#..........", +"..........#aaaaaaaaaa#..........", +"...........#aaaaaaaa#...........", +"............########............", +"................................", +"................................", "................................", "................................", "................................", diff --git a/src/editwindow.cpp b/src/editwindow.cpp index 667f752..f617f3d 100755 --- a/src/editwindow.cpp +++ b/src/editwindow.cpp @@ -8,14 +8,22 @@ // Who When What // --- ---------- ------------------------------------------------------------- // JLH 08/28/2008 Created this file +// JLH 09/02/2008 Separated scrolling from dedicated tool to MMB drag // // FIXED: // +// - Fixed scrolling +// // STILL TO BE DONE: // // - Fix bug in Glyphpoints when dragging on an empty canvas or loading a font -// - Fix scrolling, zooming, settings (ini) +// - Fix zooming, settings (ini) +// - Fix point adding bug 1: should be able to add points to empty canvas +// - Fix point adding bug 2: should be able to add point successfully to single +// point on screen +// - Add poly multi-select +// - Add point multi-select // // Uncomment this for debugging... @@ -301,11 +309,17 @@ WriteLogMsg(" --> [# polys: %u, # points: %u]\n", pts.GetNumPolys(), pts.GetNumP } else if (e.LeftUp()) { -// mouseDown = false; - if (tool == TOOLScroll || tool == TOOLZoom) ReleaseMouse(); } + else if (e.MiddleDown()) + { + SetCursor(*(app.cur[2])); // Scrolling cursor + } + else if (e.MiddleUp()) + { + SetCursor(*(app.cur[tool])); // Restore previous cursor + } else if (e.Dragging()) { if (e.RightIsDown()) diff --git a/src/ttedit.cpp b/src/ttedit.cpp index 116bd4a..17617f1 100755 --- a/src/ttedit.cpp +++ b/src/ttedit.cpp @@ -73,6 +73,8 @@ bool TTEditApp::OnInit() mainFrame = NULL; charWin = NULL; toolPalette = NULL; + for(int i=0; i<8; i++) + cur[i] = NULL; //Shouldn't we check to see if it was successful? This just assumes CreateResources(); @@ -83,7 +85,7 @@ bool TTEditApp::OnInit() // charWin = new CharWindow(NULL);//, _T("Own3d W1nd0w"), wxDefaultPosition, wxDefaultSize); charWin = new CharWindow(mainFrame, _("Own3d W1nd0w"), wxDefaultPosition, wxDefaultSize, - wxCAPTION | wxRESIZE_BORDER); + wxCAPTION | wxRESIZE_BORDER | wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT); toolPalette = new ToolWindow(mainFrame, _(""), wxDefaultPosition, wxDefaultSize, wxBORDER_NONE | wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT); @@ -96,54 +98,36 @@ int TTEditApp::OnExit() #ifdef DEBUG CloseDebugLog(); #endif + for(int i=0; i<8; i++) + if (cur[i]) + delete cur[i]; return 0; } +// +// OS dependent method of creating cursor (works for Win32 and GTK+) +// +#define CREATE_CURSOR(storage, name, hsx, hsy) \ + wxBitmap name##_bitmap(name##_xpm); \ + wxImage name##_image = name##_bitmap.ConvertToImage(); \ + name##_image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, hsx); \ + name##_image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hsy); \ + storage = new wxCursor(name##_image); + void TTEditApp::CreateResources(void) { // This is a sucky way to create cursors, but at least it's cross-platform... - // NOTE: Need to fix hotspots on a few... !!! FIX !!! - - wxBitmap cursorBM1(cur1_xpm); - wxImage cursorImage1 = cursorBM1.ConvertToImage(); - cursorImage1.SetMaskFromImage(cursorImage1, 0xFF, 0xFF, 0xFF); - cur[0] = new wxCursor(cursorImage1); - - wxBitmap cursorBM2(cur2_xpm); - wxImage cursorImage2 = cursorBM2.ConvertToImage(); - cursorImage2.SetMaskFromImage(cursorImage2, 0xFF, 0xFF, 0xFF); - cur[1] = new wxCursor(cursorImage2); - - wxBitmap cursorBM3(cur3_xpm); - wxImage cursorImage3 = cursorBM3.ConvertToImage(); - cursorImage3.SetMaskFromImage(cursorImage3, 0xFF, 0xFF, 0xFF); - cur[2] = new wxCursor(cursorImage3); - - wxBitmap cursorBM4(cur4_xpm); - wxImage cursorImage4 = cursorBM4.ConvertToImage(); - cursorImage4.SetMaskFromImage(cursorImage4, 0xFF, 0xFF, 0xFF); - cur[3] = new wxCursor(cursorImage4); - - wxBitmap cursorBM5(cur5_xpm); - wxImage cursorImage5 = cursorBM5.ConvertToImage(); - cursorImage5.SetMaskFromImage(cursorImage5, 0xFF, 0xFF, 0xFF); - cur[4] = new wxCursor(cursorImage5); - - wxBitmap cursorBM6(cur6_xpm); - wxImage cursorImage6 = cursorBM6.ConvertToImage(); - cursorImage6.SetMaskFromImage(cursorImage6, 0xFF, 0xFF, 0xFF); - cur[5] = new wxCursor(cursorImage6); - - wxBitmap cursorBM7(cur7_xpm); - wxImage cursorImage7 = cursorBM7.ConvertToImage(); - cursorImage7.SetMaskFromImage(cursorImage7, 0xFF, 0xFF, 0xFF); - cur[6] = new wxCursor(cursorImage7); - - wxBitmap cursorBM8(cur8_xpm); - wxImage cursorImage8 = cursorBM8.ConvertToImage(); - cursorImage8.SetMaskFromImage(cursorImage8, 0xFF, 0xFF, 0xFF); - cur[7] = new wxCursor(cursorImage8); + // NOTE: Need to fix hotspots on a few... !!! FIX !!! [DONE] + + CREATE_CURSOR(cur[0], cur1, 1, 1); + CREATE_CURSOR(cur[1], cur2, 1, 1); + CREATE_CURSOR(cur[2], cur3, 11, 11); // Prolly won't need this soon (scroll)... + CREATE_CURSOR(cur[3], cur4, 15, 13); // Prolly won't need this soon (zoom)... + CREATE_CURSOR(cur[4], cur5, 1, 1); + CREATE_CURSOR(cur[5], cur6, 1, 1); + CREATE_CURSOR(cur[6], cur7, 1, 1); + CREATE_CURSOR(cur[7], cur8, 1, 1); } @@ -151,6 +135,7 @@ BEGIN_EVENT_TABLE(TTEditFrame, wxFrame) EVT_MENU(IDM_OPEN, TTEditFrame::OnOpen) EVT_MENU(IDM_EXIT, TTEditFrame::OnExit) EVT_MENU(IDM_ABOUT, TTEditFrame::OnAbout) + EVT_MENU(ID_TBCHARWIN, TTEditFrame::OnCharWindow) EVT_CLOSE(TTEditFrame::OnCloseWindow) END_EVENT_TABLE() @@ -177,7 +162,7 @@ TTEditFrame::TTEditFrame(wxFrame * parent, const wxString &title, const wxPoint tb->AddTool(ID_TBLEFT, _("Prev char"), tool1, _("Go to prev char"), wxITEM_NORMAL); tb->AddTool(ID_TBRIGHT, _("Next char"), tool2, _("Go to next char"), wxITEM_NORMAL); - tb->AddTool(ID_TBCHARWIN, _("Char Wnd"), tool3, _("Toggle char window"), wxITEM_NORMAL); + tb->AddTool(ID_TBCHARWIN, _("Char Wnd"), tool3, _("Toggle char window"), wxITEM_CHECK); tb->Realize(); } @@ -239,6 +224,14 @@ void TTEditFrame::OnExit(wxCommandEvent &e) this->Destroy(); } +void TTEditFrame::OnCharWindow(wxCommandEvent &e) +{ + app.charWin->Show(e.IsChecked() ? true : false); + + if (e.IsChecked()) + Raise(); +} + void TTEditFrame::OnCloseWindow(wxCloseEvent &e) { app.toolPalette->Destroy(); diff --git a/src/ttedit.h b/src/ttedit.h index 6545455..fc0fb3e 100755 --- a/src/ttedit.h +++ b/src/ttedit.h @@ -56,6 +56,7 @@ class TTEditFrame: public wxFrame void OnOpen(wxCommandEvent &e); void OnExit(wxCommandEvent &e); void OnAbout(wxCommandEvent &e); + void OnCharWindow(wxCommandEvent &e); DECLARE_EVENT_TABLE() };