diff --git a/uppsrc/Core/config.h b/uppsrc/Core/config.h index b00301887..38e94bc39 100644 --- a/uppsrc/Core/config.h +++ b/uppsrc/Core/config.h @@ -36,8 +36,10 @@ #elif __APPLE__ // zvzv note // s/b MACOSX - #ifndef COCO + #ifdef flagX11 #define PLATFORM_OSX11 1 + #else + #define PLATFORM_COCOA 1 #endif #define PLATFORM_BSD 1 #define flagNOGTK diff --git a/uppsrc/CtrlCore/Coco.h b/uppsrc/CtrlCore/Coco.h index 12a310249..2a617ac16 100644 --- a/uppsrc/CtrlCore/Coco.h +++ b/uppsrc/CtrlCore/Coco.h @@ -1,6 +1,4 @@ -#define GUI_COCO - -NAMESPACE_UPP +namespace Upp { struct RectCG; @@ -173,6 +171,6 @@ public: ~PrinterJob() {} }; -END_UPP_NAMESPACE +}; #define GUIPLATFORM_INCLUDE_AFTER diff --git a/uppsrc/CtrlCore/CocoApp.mm b/uppsrc/CtrlCore/CocoApp.mm index 0e5b19dd1..8f1808580 100644 --- a/uppsrc/CtrlCore/CocoApp.mm +++ b/uppsrc/CtrlCore/CocoApp.mm @@ -1,6 +1,6 @@ #include "CocoMM.h" -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA #define LLOG(x) DLOG(x) @@ -21,7 +21,7 @@ static NSEvent *GetNextEvent(NSDate *until) return current_event; } -void ReleaseCurrentEvent() +static void ReleaseCurrentEvent() { if(current_event) { [current_event release]; @@ -48,6 +48,15 @@ void Upp::CocoInit(int argc, const char **argv, const char **envptr) [appMenu addItem:quitMenuItem]; [appMenuItem setSubmenu:appMenu]; [NSApp activateIgnoringOtherApps:YES]; + + Font::SetDefaultFont(Arial(12)); // TODO: Read from NSFont! + NSFont *sysfont = [NSFont systemFontOfSize:0]; + DDUMP(Upp::ToString((CFStringRef)[sysfont familyName])); + DDUMP(Upp::ToString((CFStringRef)[sysfont displayName])); + DDUMP(Upp::ToString((CFStringRef)[sysfont fontName])); + DDUMP([sysfont pointSize]); + Font::SetFace(0, Upp::ToString((CFStringRef)[sysfont familyName]), Font::TTF); + Font::SetDefaultFont(StdFont(fround([sysfont pointSize]))); // TODO: Read from NSFont! } void Upp::CocoExit() @@ -75,8 +84,9 @@ bool Upp::Ctrl::ProcessEvent(bool *) if(!event) return false; + current_event = nil; [NSApp sendEvent:event]; - ReleaseCurrentEvent(); + [event release]; return true; } @@ -86,7 +96,7 @@ void SweepMkImageCache(); bool Upp::Ctrl::ProcessEvents(bool *quit) { if(ProcessEvent(quit)) { - while(ProcessEvent(quit) && (!LoopCtrl || LoopCtrl->InLoop())); // LoopCtrl-MF 071008 + while(ProcessEvent(quit) && (!LoopCtrl || LoopCtrl->InLoop())); TimerProc(GetTickCount()); AnimateCaret(); [NSApp updateWindows]; @@ -121,7 +131,6 @@ void Upp::Ctrl::EventLoop(Ctrl *ctrl) SyncCaret(); AnimateCaret(); GuiSleep(20); - DDUMP(GetTickCount()); // if(EndSession()) break; // LLOG(GetSysTime() << " % " << (unsigned)msecs() % 10000 << ": EventLoop / ProcessEvents"); ProcessEvents(&quit); @@ -145,7 +154,6 @@ void Upp::Ctrl::AnimateCaret() GuiLock __; int v = !(((GetTickCount() - WndCaretTime) / 500) & 1); if(v != WndCaretVisible) { - DDUMP(WndCaretVisible); WndCaretVisible = v; RefreshCaret(); } @@ -178,7 +186,7 @@ void Upp::Ctrl::SetCaret(int x, int y, int cx, int cy) void Upp::Ctrl::SyncCaret() { GuiLock __; - LLOG("SyncCaret"); +// LLOG("SyncCaret"); if(focusCtrl != caretCtrl) { LLOG("SyncCaret DO " << Upp::Name(caretCtrl) << " -> " << Upp::Name(focusCtrl)); RefreshCaret(); @@ -228,4 +236,35 @@ Upp::Rect Upp::Ctrl::GetPrimaryScreenArea() return Rect(0, 0, 1024, 768); } +bool Upp::Ctrl::IsCompositedGui() +{ + return true; +} + +Upp::Rect Upp::Ctrl::GetDefaultWindowRect() +{ + GuiLock __; + Rect r = GetPrimaryWorkArea(); + Size sz = r.GetSize(); + + static int pos = min(sz.cx / 10, 50); + pos += 10; + int cx = sz.cx * 2 / 3; + int cy = sz.cy * 2 / 3; + if(pos + cx + 50 > sz.cx || pos + cy + 50 > sz.cy) + pos = 0; + return RectC(r.left + pos + 20, r.top + pos + 20, cx, cy); +} + +void Upp::Ctrl::GuiPlatformGetTopRect(Rect& r) const +{ +} + +void Upp::MMCtrl::SyncRect(CocoView *view) +{ + NSWindow *win = [view window]; + view->ctrl->SetWndRect( + MakeRect([win contentRectForFrameRect: [win frame]], [[win screen] frame].size.height)); +} + #endif diff --git a/uppsrc/CtrlCore/CocoChSysInit.cpp b/uppsrc/CtrlCore/CocoChSysInit.cpp index 93fcf5be2..ee2114380 100644 --- a/uppsrc/CtrlCore/CocoChSysInit.cpp +++ b/uppsrc/CtrlCore/CocoChSysInit.cpp @@ -1,6 +1,6 @@ #include -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA NAMESPACE_UPP diff --git a/uppsrc/CtrlCore/CocoClip.cpp b/uppsrc/CtrlCore/CocoClip.cpp index 243bee9e6..1602418d7 100644 --- a/uppsrc/CtrlCore/CocoClip.cpp +++ b/uppsrc/CtrlCore/CocoClip.cpp @@ -1,7 +1,7 @@ #include #include -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA NAMESPACE_UPP diff --git a/uppsrc/CtrlCore/CocoCreate.mm b/uppsrc/CtrlCore/CocoCreate.mm index 87ec7c71d..431319856 100644 --- a/uppsrc/CtrlCore/CocoCreate.mm +++ b/uppsrc/CtrlCore/CocoCreate.mm @@ -1,6 +1,6 @@ #include "CocoMM.h" -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA #define LLOG(x) @@ -15,11 +15,7 @@ } @end -void Upp::MMCtrl::SyncRect(CocoView *view) -{ - NSWindow *win = [view window]; - view->ctrl->SetWndRect(MakeRect([win contentRectForFrameRect: [win frame]], 1000)); -} +static Upp::Vector> mmtopctrl; // should work without Ptr, but let us be defensive.... void Upp::Ctrl::Create(dword style) { @@ -47,17 +43,29 @@ void Upp::Ctrl::Create(dword style) top->coco->view = view; MMCtrl::SyncRect(view); isopen = true; + mmtopctrl.Add(this); } void Upp::Ctrl::WndDestroy() { - // TODO: Destroy window... if(!top) return; + [top->coco->window release]; delete top->coco; delete top; top = NULL; isopen = false; + int ii = FindIndex(mmtopctrl, this); + if(ii >= 0) + mmtopctrl.Remove(ii); +} + +Upp::Vector Upp::Ctrl::GetTopCtrls() +{ + Vector h; + for(Ctrl *p : mmtopctrl) + if(p) h.Add(p); + return h; } void Upp::Ctrl::WndInvalidateRect(const Rect& r) diff --git a/uppsrc/CtrlCore/CocoCtrl.cpp b/uppsrc/CtrlCore/CocoCtrl.cpp index 131eddd10..727c228f6 100644 --- a/uppsrc/CtrlCore/CocoCtrl.cpp +++ b/uppsrc/CtrlCore/CocoCtrl.cpp @@ -1,6 +1,6 @@ #include -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA #define LLOG(x) // DLOG(x) @@ -26,10 +26,6 @@ void Ctrl::GuiPlatformRemove() { } -void Ctrl::GuiPlatformGetTopRect(Rect& r) const -{ -} - bool Ctrl::GuiPlatformRefreshFrameSpecial(const Rect& r) { return false; diff --git a/uppsrc/CtrlCore/CocoDnD.cpp b/uppsrc/CtrlCore/CocoDnD.cpp index 2477cede9..bc500b82b 100644 --- a/uppsrc/CtrlCore/CocoDnD.cpp +++ b/uppsrc/CtrlCore/CocoDnD.cpp @@ -1,6 +1,6 @@ #include -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA NAMESPACE_UPP diff --git a/uppsrc/CtrlCore/CocoDraw.mm b/uppsrc/CtrlCore/CocoDraw.mm index 0e785e929..209de3768 100644 --- a/uppsrc/CtrlCore/CocoDraw.mm +++ b/uppsrc/CtrlCore/CocoDraw.mm @@ -1,12 +1,11 @@ #include "CocoMM.h" -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA namespace Upp { void SystemDraw::Init(void *cgContext, int cy) { - DDUMP(cgContext); handle = cgContext; top = cy; Push(); @@ -21,7 +20,6 @@ SystemDraw::SystemDraw(void *cgContext, int cy) SystemDraw::~SystemDraw() { - DLOG("~SystemDraw"); Pop(); } @@ -40,7 +38,6 @@ dword SystemDraw::GetInfo() const void SystemDraw::Push() { - DDUMP(cgHandle); CGContextSaveGState(cgHandle); offset.Add(GetOffset()); clip.Add(GetClip()); @@ -152,7 +149,6 @@ Rect SystemDraw::GetPaintRect() const void SystemDraw::DrawRectOp(int x, int y, int cx, int cy, Color color) { - DLOG("DrawRectOp"); CGRect cgr = Convert(x, y, cx, cy); if(color == InvertColor()) { Set(White()); diff --git a/uppsrc/CtrlCore/CocoDrawOp.mm b/uppsrc/CtrlCore/CocoDrawOp.mm index a3b86178d..db1a88439 100644 --- a/uppsrc/CtrlCore/CocoDrawOp.mm +++ b/uppsrc/CtrlCore/CocoDrawOp.mm @@ -1,6 +1,6 @@ #include "CocoMM.h" -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA namespace Upp { diff --git a/uppsrc/CtrlCore/CocoDrawText.mm b/uppsrc/CtrlCore/CocoDrawText.mm index 6e9a3ae15..0766b8e15 100644 --- a/uppsrc/CtrlCore/CocoDrawText.mm +++ b/uppsrc/CtrlCore/CocoDrawText.mm @@ -1,6 +1,6 @@ #include "CocoMM.h" -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA #define LLOG(x) #define LTIMING(x) @@ -18,7 +18,8 @@ CTFontRef CT_Font(Font fnt) if(fnt.IsItalic()) symbolicTraits |= kCTFontItalicTrait; CGAffineTransform transform = CGAffineTransformIdentity; - return CTFontCreateCopyWithSymbolicTraits(ctfont0, 32, &transform, symbolicTraits, symbolicTraits); + return CTFontCreateCopyWithSymbolicTraits(ctfont0, fnt.GetHeight(), + &transform, symbolicTraits, symbolicTraits); } return ctfont0.Detach(); } @@ -85,6 +86,7 @@ GlyphInfo GetGlyphInfoSys(Font font, int chr) Vector GetAllFacesSys() { Index facename; + facename.Add("Arial"); // TODO: This should be default GUI font facename.Add("Times New Roman"); facename.Add("Arial"); @@ -109,7 +111,7 @@ Vector GetAllFacesSys() for(String s : facename) { FaceInfo& fi = r.Add(); fi.name = s; - fi.info = 0; + fi.info = Font::TTF; } return r; diff --git a/uppsrc/CtrlCore/CocoImage.mm b/uppsrc/CtrlCore/CocoImage.mm index e8b00514d..e01164fd9 100644 --- a/uppsrc/CtrlCore/CocoImage.mm +++ b/uppsrc/CtrlCore/CocoImage.mm @@ -1,6 +1,6 @@ #include "CocoMM.h" -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA #define LLOG(x) @@ -35,7 +35,6 @@ void ImageSysData::Init(const Image& m) ImageSysData::~ImageSysData() { - DLOG("destruct"); SysImageReleased(img); CGImageRelease(cgimg); } diff --git a/uppsrc/CtrlCore/CocoKeys.h b/uppsrc/CtrlCore/CocoKeys.h index f4882cb44..34f64bdb8 100644 --- a/uppsrc/CtrlCore/CocoKeys.h +++ b/uppsrc/CtrlCore/CocoKeys.h @@ -1,11 +1,11 @@ -K_BACK = 53000, -K_BACKSPACE, +K_BACK = kVK_Delete|K_DELTA, +K_BACKSPACE = K_BACK, -K_TAB = 9, +K_TAB = kVK_Tab|K_DELTA, -K_SPACE = 32, +K_SPACE = kVK_Space|K_DELTA, -K_RETURN = 13, +K_RETURN = kVK_Return|K_DELTA, K_ENTER = K_RETURN, K_SHIFT_KEY, @@ -24,8 +24,8 @@ K_LEFT = kVK_LeftArrow|K_DELTA, K_UP = kVK_UpArrow|K_DELTA, K_RIGHT = kVK_RightArrow|K_DELTA, K_DOWN = kVK_DownArrow|K_DELTA, -K_INSERT = 0, // kVK_Insert|K_DELTA, // TODO -K_DELETE = kVK_Delete|K_DELTA, +K_INSERT = 999999999, // kVK_Insert|K_DELTA, // TODO +K_DELETE = kVK_ForwardDelete|K_DELTA, K_NUMPAD0 = kVK_ANSI_Keypad0|K_DELTA, K_NUMPAD1 = kVK_ANSI_Keypad1|K_DELTA, @@ -96,28 +96,28 @@ K_7 = kVK_ANSI_7|K_DELTA, K_8 = kVK_ANSI_8|K_DELTA, K_9 = kVK_ANSI_9|K_DELTA, -K_CTRL_LBRACKET, -K_CTRL_RBRACKET, -K_CTRL_MINUS, -K_CTRL_GRAVE, -K_CTRL_SLASH, -K_CTRL_BACKSLASH, -K_CTRL_COMMA, -K_CTRL_PERIOD, -K_CTRL_SEMICOLON, -K_CTRL_EQUAL, +K_CTRL_LBRACKET = kVK_ANSI_LeftBracket|K_DELTA|K_CTRL, +K_CTRL_RBRACKET = kVK_ANSI_RightBracket|K_DELTA|K_CTRL, +K_CTRL_MINUS = kVK_ANSI_Minus|K_DELTA|K_CTRL, +K_CTRL_GRAVE = kVK_ANSI_Grave|K_DELTA|K_CTRL, +K_CTRL_SLASH = kVK_ANSI_Slash|K_DELTA|K_CTRL, +K_CTRL_BACKSLASH = kVK_ANSI_Backslash|K_DELTA|K_CTRL, +K_CTRL_COMMA = kVK_ANSI_Comma|K_DELTA|K_CTRL, +K_CTRL_PERIOD = kVK_ANSI_Period|K_DELTA|K_CTRL, +K_CTRL_SEMICOLON = kVK_ANSI_Semicolon|K_DELTA|K_CTRL, +K_CTRL_EQUAL = kVK_ANSI_Equal|K_DELTA|K_CTRL, K_CTRL_APOSTROPHE, K_BREAK, -K_PLUS = 0, // not yet defined -K_MINUS = 0, // not yet defined -K_COMMA = 0, // not yet defined -K_PERIOD = 0, // not yet defined -K_SEMICOLON = 0, // not yet defined -K_SLASH = 0, // not yet defined -K_GRAVE = 0, // not yet defined -K_LBRACKET = 0, // not yet defined -K_BACKSLASH = 0, // not yet defined -K_RBRACKET = 0, // not yet defined -K_QUOTEDBL = 0, // not yet defined +K_PLUS = 999999999, +K_MINUS = kVK_ANSI_Minus|K_DELTA, +K_COMMA = kVK_ANSI_Comma|K_DELTA, +K_PERIOD = kVK_ANSI_Period|K_DELTA, +K_SEMICOLON = kVK_ANSI_Semicolon|K_DELTA, +K_SLASH = kVK_ANSI_Slash|K_DELTA, +K_GRAVE = kVK_ANSI_Grave|K_DELTA, +K_LBRACKET = kVK_ANSI_LeftBracket|K_DELTA, +K_BACKSLASH = kVK_ANSI_Backslash|K_DELTA, +K_RBRACKET = kVK_ANSI_RightBracket|K_DELTA, +K_QUOTEDBL = 999999999, diff --git a/uppsrc/CtrlCore/CocoMM.h b/uppsrc/CtrlCore/CocoMM.h index 3dd465984..22fbb4200 100644 --- a/uppsrc/CtrlCore/CocoMM.h +++ b/uppsrc/CtrlCore/CocoMM.h @@ -1,7 +1,9 @@ #ifndef _CtrlCore_CocoMM_h_ #define _CtrlCore_CocoMM_h_ -#ifdef flagCOCOA +#include + +#ifdef PLATFORM_COCOA #define Point NS_Point #define Rect NS_Rect diff --git a/uppsrc/CtrlCore/CocoProc.mm b/uppsrc/CtrlCore/CocoProc.mm index d36faa529..7a332da6f 100644 --- a/uppsrc/CtrlCore/CocoProc.mm +++ b/uppsrc/CtrlCore/CocoProc.mm @@ -1,6 +1,6 @@ #include "CocoMM.h" -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA #define LLOG(x) @@ -65,10 +65,10 @@ struct MMImp { if(GetOption()) // TODO k |= K_OPTION; ctrl->DispatchKey(k, 1); - if(!up) { + if(!up && !(k & (K_CTRL|K_ALT))) { WString x = ToWString((CFStringRef)(e.characters)); for(wchar c : x) - if(c < 0xF700) + if(c < 0xF700 && c >= 32 && c != 127) ctrl->DispatchKey(c, 1); } } diff --git a/uppsrc/CtrlCore/CocoTop.cpp b/uppsrc/CtrlCore/CocoTop.cpp index 8395c6105..97663ca33 100644 --- a/uppsrc/CtrlCore/CocoTop.cpp +++ b/uppsrc/CtrlCore/CocoTop.cpp @@ -1,6 +1,6 @@ #include -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA NAMESPACE_UPP diff --git a/uppsrc/CtrlCore/CocoUtil.mm b/uppsrc/CtrlCore/CocoUtil.mm index efc414c48..a2176cd6a 100644 --- a/uppsrc/CtrlCore/CocoUtil.mm +++ b/uppsrc/CtrlCore/CocoUtil.mm @@ -1,6 +1,6 @@ #include "CocoMM.h" -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA namespace Upp { diff --git a/uppsrc/CtrlCore/CocoWnd.cpp b/uppsrc/CtrlCore/CocoWnd.cpp index 99ae17fae..c0799a8cd 100644 --- a/uppsrc/CtrlCore/CocoWnd.cpp +++ b/uppsrc/CtrlCore/CocoWnd.cpp @@ -1,6 +1,6 @@ #include -#ifdef GUI_COCO +#ifdef PLATFORM_COCOA NAMESPACE_UPP @@ -19,17 +19,6 @@ bool Ctrl::IsAlphaSupported() return false; } -bool Ctrl::IsCompositedGui() -{ - return false; -} - -Vector Ctrl::GetTopCtrls() -{ - Vector h; - return h; -} - Ctrl *Ctrl::GetOwner() { GuiLock __; @@ -172,10 +161,6 @@ void Ctrl::WndScrollView(const Rect& r, int dx, int dy) GuiLock __; } -Rect Ctrl::GetDefaultWindowRect() { - return Rect(0, 0, 100, 100); -} - ViewDraw::ViewDraw(Ctrl *ctrl) { EnterGuiMutex(); diff --git a/uppsrc/CtrlCore/CtrlCore.h b/uppsrc/CtrlCore/CtrlCore.h index 2f8377be7..ef04b2545 100644 --- a/uppsrc/CtrlCore/CtrlCore.h +++ b/uppsrc/CtrlCore/CtrlCore.h @@ -25,7 +25,7 @@ #elif VIRTUALGUI #define GUIPLATFORM_KEYCODES_INCLUDE #define GUIPLATFORM_INCLUDE - #elif flagCOCOA + #elif PLATFORM_COCOA #define GUIPLATFORM_INCLUDE "Coco.h" #elif PLATFORM_WIN32 #define GUIPLATFORM_INCLUDE "Win32Gui.h" @@ -96,7 +96,7 @@ enum { K_SHIFT_CTRL = K_SHIFT|K_CTRL, -#ifdef flagCOCOA +#ifdef PLATFORM_COCOA K_OPTION = 0x4000000, #endif }; @@ -111,7 +111,7 @@ bool GetMouseLeft(); bool GetMouseRight(); bool GetMouseMiddle(); -#ifdef flagCOCOA +#ifdef PLATFORM_COCOA bool GetOption(); #endif diff --git a/uppsrc/CtrlCore/CtrlCore.upp b/uppsrc/CtrlCore/CtrlCore.upp index dda1f3623..3c227d044 100644 --- a/uppsrc/CtrlCore/CtrlCore.upp +++ b/uppsrc/CtrlCore/CtrlCore.upp @@ -33,6 +33,8 @@ library(POSIX !NOGTK !RAINBOW GUI !OSX11) notify; library(DRAGONFLY) "Xext Xinerama"; +link(MACOSX) " -framework Foundation -framework Cocoa"; + file Core readonly separator, CtrlCore.h options(BUILDER_OPTION) PCH, diff --git a/uppsrc/CtrlCore/CtrlKbd.cpp b/uppsrc/CtrlCore/CtrlKbd.cpp index 3aee3d3cc..88b9b24d4 100644 --- a/uppsrc/CtrlCore/CtrlKbd.cpp +++ b/uppsrc/CtrlCore/CtrlKbd.cpp @@ -372,17 +372,20 @@ String GetKeyDesc(dword key) if(key == 0) return desc; + DDUMPHEX(key); + DDUMPHEX(K_DELETE); + if(key & K_KEYUP) desc << t_("key\vUP "); if(key & K_CTRL) desc << t_("key\vCtrl+"); if(key & K_ALT) desc << t_("key\vAlt+"); if(key & K_SHIFT) desc << t_("key\vShift+"); -#ifdef flagCOCOA +#ifdef PLATFORM_COCOA if(key & K_OPTION) desc << t_("key\vOption+"); #endif key &= ~(K_CTRL | K_ALT | K_SHIFT | K_KEYUP); -#ifdef flagCOCOA +#ifdef PLATFORM_COCOA key &= ~(K_OPTION); #endif if(key < K_DELTA && key > 32 && key != K_DELETE) @@ -457,11 +460,14 @@ String GetKeyDesc(dword key) { K_BACKSLASH, tt_("key\v[\\]") }, { K_RBRACKET, tt_("key\v[]]") }, { K_QUOTEDBL, tt_("key\v[']") }, { 0, NULL } }; - for(int i = 0; nkey[i].key; i++) + for(int i = 0; nkey[i].key; i++) { + DDUMPHEX(nkey[i].key); + DDUMP(nkey[i].name); if(nkey[i].key == key) { desc << GetLngString(nkey[i].name); return desc; } + } desc << Format("%04x", (int)key); } return desc; diff --git a/uppsrc/CtrlCore/cocotodo.txt b/uppsrc/CtrlCore/cocotodo.txt index 4795ec4ae..d08e0906b 100644 --- a/uppsrc/CtrlCore/cocotodo.txt +++ b/uppsrc/CtrlCore/cocotodo.txt @@ -1,13 +1,15 @@ sooner: -- backspace and delete not working -- implement standard cursors - minimize, maximaze -- fullscreen - Open/OpenMain variants -- Enter Up -- missing cursors (add to iml) +- LabelBox is wrong +- initial focus +- SerializePlacement later: +DrawDragRect +- fullscreen +- missing cursors (add to iml, use undocumented cursor) +- X11 on option - PrinterJob - DrawDragRect - CT_Font caching @@ -41,3 +43,6 @@ done: - caret - implement caret - workarea and window placement +- implement standard cursors +- backspace and delete not working +- Enter Up diff --git a/uppsrc/Draw/Font.cpp b/uppsrc/Draw/Font.cpp index 041717568..f38328764 100644 --- a/uppsrc/Draw/Font.cpp +++ b/uppsrc/Draw/Font.cpp @@ -1,6 +1,6 @@ #include "Draw.h" -#define LLOG(x) // DLOG(x) +#define LLOG(x) DLOG(x) namespace Upp { @@ -118,6 +118,7 @@ void Font::SyncStdFont() { Mutex::Lock __(sFontLock); StdFontSize = Size(AStdFont.GetAveWidth(), AStdFont().Bold().GetCy()); + LLOG("SyncStdFont " << StdFontSize); SyncUHDMode(); } diff --git a/uppsrc/Draw/FontFc.cpp b/uppsrc/Draw/FontFc.cpp index 3fd6f3125..5082015b4 100644 --- a/uppsrc/Draw/FontFc.cpp +++ b/uppsrc/Draw/FontFc.cpp @@ -3,7 +3,7 @@ #define LLOG(x) // LOG(x) #define LTIMING(x) // TIMING(x) -#if !defined(CUSTOM_FONTSYS) && !defined(flagCOCOA) +#if !defined(CUSTOM_FONTSYS) && !defined(PLATFORM_COCOA) #ifdef PLATFORM_POSIX