changed scroll from dedicated tool to MMB drag.
/* 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#.......................",
+".......#........................",
+"................................",
"................................",
"................................",
"................................",
/* 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#.................",
+"...........####.................",
"................................",
"................................",
"................................",
/* 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#..................",
+"...........##...................",
+"................................",
+"................................",
+"................................",
+"................................",
+"................................",
+"................................",
+"................................",
+"................................"};
/* 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#........................",
+"########........................",
+"................................"};
/* 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#..............",
+".............####...............",
"................................",
"................................",
"................................",
/* 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#...........",
+"............########............",
+"................................",
"................................",
"................................",
"................................",
/* 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#..............",
+".............####...............",
+"................................",
+"................................",
"................................",
"................................",
"................................",
/* 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#...........",
+"............########............",
+"................................",
+"................................",
"................................",
"................................",
"................................",
// 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...
}
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())
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();
// 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);
#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);
}
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()
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();
}
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();
void OnOpen(wxCommandEvent &e);
void OnExit(wxCommandEvent &e);
void OnAbout(wxCommandEvent &e);
+ void OnCharWindow(wxCommandEvent &e);
DECLARE_EVENT_TABLE()
};