diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Gl_Window.cxx | 6 | ||||
| -rw-r--r-- | src/Fl_cocoa.mm | 10 | ||||
| -rw-r--r-- | src/Fl_win32.cxx | 10 | ||||
| -rw-r--r-- | src/Fl_x.cxx | 12 | ||||
| -rw-r--r-- | src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm | 2 | ||||
| -rw-r--r-- | src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx | 4 | ||||
| -rw-r--r-- | src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H | 1 | ||||
| -rw-r--r-- | src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H | 1 | ||||
| -rw-r--r-- | src/drivers/X11/Fl_X11_Window_Driver.H | 1 |
9 files changed, 25 insertions, 22 deletions
diff --git a/src/Fl_Gl_Window.cxx b/src/Fl_Gl_Window.cxx index acd790e7b..241221698 100644 --- a/src/Fl_Gl_Window.cxx +++ b/src/Fl_Gl_Window.cxx @@ -114,7 +114,7 @@ void Fl_Gl_Window::show() { int Fl_Gl_Window::pixels_per_unit() { return (fl_mac_os_version >= 100700 && Fl::use_high_res_GL() && Fl_X::i(this) && - ((Fl_Cocoa_Window_Driver*)driver())->mapped_to_retina()) ? 2 : 1; + Fl_Cocoa_Window_Driver::driver(this)->mapped_to_retina()) ? 2 : 1; } #endif // __APPLE__ // PORTME: platform OpenGL management @@ -198,7 +198,7 @@ void Fl_Gl_Window::make_current() { // printf("make_current: context_=%p\n", context_); #if defined(__APPLE__) // PORTME: platform OpenGL management // detect if the window was moved between low and high resolution displays - Fl_Cocoa_Window_Driver *d = (Fl_Cocoa_Window_Driver*)driver(); + Fl_Cocoa_Window_Driver *d = Fl_Cocoa_Window_Driver::driver(this); if (d->changed_resolution()){ d->changed_resolution(false); invalidate(); @@ -443,7 +443,7 @@ void Fl_Gl_Window::resize(int X,int Y,int W,int H) { #ifdef __APPLE__ // PORTME: platform OpenGL management Fl_X *flx = Fl_X::i(this); - Fl_Cocoa_Window_Driver *d = (Fl_Cocoa_Window_Driver*)driver(); + Fl_Cocoa_Window_Driver *d = Fl_Cocoa_Window_Driver::driver(this); if (flx && d->in_windowDidResize()) Fl_Cocoa_Screen_Driver::GLcontext_update(context_); #endif diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index f924dd98f..f545e987b 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -754,7 +754,7 @@ void Fl_Cocoa_Screen_Driver::remove_timeout(Fl_Timeout_Handler cb, void* data) srect = CGRectIntersection(prect, srect); // area of subwindow inside its parent from = parent; } - Fl_Cocoa_Window_Driver *d = (Fl_Cocoa_Window_Driver*)w->driver(); + Fl_Cocoa_Window_Driver *d = Fl_Cocoa_Window_Driver::driver(w); CGRect *r = d->subRect(); CGRect current_clip = (r ? *r : full); // current subwindow clip if (!CGRectEqualToRect(srect, current_clip)) { // if new clip differs from current clip @@ -1350,7 +1350,7 @@ static FLWindowDelegate *flwindowdelegate_instance = nil; parent = parent->window(); } resize_from_system = window; - Fl_Cocoa_Window_Driver *d = (Fl_Cocoa_Window_Driver*)window->driver(); + Fl_Cocoa_Window_Driver *d = Fl_Cocoa_Window_Driver::driver(window); if (window->as_gl_window() && Fl_X::i(window)) d->in_windowDidResize(true); update_e_xy_and_e_xy_root(nsw); window->resize((int)pt2.x, (int)pt2.y, (int)r.size.width, (int)r.size.height); @@ -1925,7 +1925,7 @@ static void handleUpdateEvent( Fl_Window *window ) { if ( !window ) return; Fl_X *i = Fl_X::i( window ); - Fl_Cocoa_Window_Driver *d = (Fl_Cocoa_Window_Driver*)window->driver(); + Fl_Cocoa_Window_Driver *d = Fl_Cocoa_Window_Driver::driver(window); if (fl_mac_os_version >= 100700) { // determine whether window is mapped to a retina display bool previous = d->mapped_to_retina(); // rewrite next call that requires 10.7 and therefore triggers a compiler warning on old SDKs @@ -2321,8 +2321,8 @@ static FLTextInputContext* fltextinputcontext_instance = nil; if (!i) return; // fix for STR #3128 // We have to have at least one cursor rect for invalidateCursorRectsForView // to work, hence the "else" clause. - if (((Fl_Cocoa_Window_Driver*)w->driver())->cursor) - [self addCursorRect:[self visibleRect] cursor:((Fl_Cocoa_Window_Driver*)w->driver())->cursor]; + if (Fl_Cocoa_Window_Driver::driver(w)->cursor) + [self addCursorRect:[self visibleRect] cursor:Fl_Cocoa_Window_Driver::driver(w)->cursor]; else [self addCursorRect:[self visibleRect] cursor:[NSCursor arrowCursor]]; } diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index 9d4c6e32e..b30bfde69 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -1356,7 +1356,7 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar } case WM_GETMINMAXINFO: - ((Fl_WinAPI_Window_Driver*)window->driver())->set_minmax((LPMINMAXINFO)lParam); + Fl_WinAPI_Window_Driver::driver(window)->set_minmax((LPMINMAXINFO)lParam); break; case WM_SIZE: @@ -1383,7 +1383,7 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar case WM_SETCURSOR: if (LOWORD(lParam) == HTCLIENT) { while (window->parent()) window = window->window(); - SetCursor(((Fl_WinAPI_Window_Driver*)window->driver())->cursor); + SetCursor(Fl_WinAPI_Window_Driver::driver(window)->cursor); return 0; } break; @@ -2070,12 +2070,12 @@ void Fl_Window::icons(HICON big_icon, HICON small_icon) free_icons(); if (big_icon != NULL) - ((Fl_WinAPI_Window_Driver*)pWindowDriver)->icon_->big_icon = CopyIcon(big_icon); + Fl_WinAPI_Window_Driver::driver(this)->icon_->big_icon = CopyIcon(big_icon); if (small_icon != NULL) - ((Fl_WinAPI_Window_Driver*)pWindowDriver)->icon_->small_icon = CopyIcon(small_icon); + Fl_WinAPI_Window_Driver::driver(this)->icon_->small_icon = CopyIcon(small_icon); if (Fl_X::i(this)) - ((Fl_WinAPI_Window_Driver*)pWindowDriver)->set_icons(); + Fl_WinAPI_Window_Driver::driver(this)->set_icons(); } /** Sets the default window icons. diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx index 22caae663..a8b488e6b 100644 --- a/src/Fl_x.cxx +++ b/src/Fl_x.cxx @@ -2222,7 +2222,7 @@ Fl_X* Fl_X::set_xid(Fl_Window* win, Window winxid) { xp->region = 0; win->driver()->wait_for_expose_value = 1; #ifdef USE_XDBE - ((Fl_X11_Window_Driver*)win->pWindowDriver)->backbuffer_bad = 1; + Fl_X11_Window_Driver::driver(win)->backbuffer_bad = 1; #endif Fl_X::first = xp; if (win->modal()) {Fl::modal_ = win; fl_fix_focus();} @@ -2386,7 +2386,7 @@ void Fl_X::make_xid(Fl_Window* win, XVisualInfo *visual, Colormap colormap) XA_ATOM, 32, 0, (uchar*)&WM_DELETE_WINDOW, 1); // send size limits and border: - ((Fl_X11_Window_Driver*)win->pWindowDriver)->sendxjunk(); + Fl_X11_Window_Driver::driver(win)->sendxjunk(); // set the class property, which controls the icon used: if (win->xclass()) { @@ -2453,14 +2453,14 @@ void Fl_X::make_xid(Fl_Window* win, XVisualInfo *visual, Colormap colormap) Fl_Window::show_iconic_ = 0; showit = 0; } - if (((Fl_X11_Window_Driver*)win->pWindowDriver)->icon_->legacy_icon) { - hints->icon_pixmap = (Pixmap)((Fl_X11_Window_Driver*)win->pWindowDriver)->icon_->legacy_icon; + if (Fl_X11_Window_Driver::driver(win)->icon_->legacy_icon) { + hints->icon_pixmap = (Pixmap)Fl_X11_Window_Driver::driver(win)->icon_->legacy_icon; hints->flags |= IconPixmapHint; } XSetWMHints(fl_display, xp->xid, hints); XFree(hints); - ((Fl_X11_Window_Driver*)win->pWindowDriver)->set_icons(); + Fl_X11_Window_Driver::driver(win)->set_icons(); } // set the window type for menu and tooltip windows to avoid animations (compiz) @@ -2481,7 +2481,7 @@ void Fl_X::make_xid(Fl_Window* win, XVisualInfo *visual, Colormap colormap) #endif if (win->is_shaped()) { - ((Fl_X11_Window_Driver*)win->pWindowDriver)->combine_mask(); + Fl_X11_Window_Driver::driver(win)->combine_mask(); } XMapWindow(fl_display, xp->xid); if (showit) { diff --git a/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm b/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm index 2003f2d46..9ff5090cd 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm +++ b/src/drivers/Cocoa/Fl_Cocoa_Printer_Driver.mm @@ -373,7 +373,7 @@ void Fl_Cocoa_Printer_Driver::print_window_part(Fl_Window *win, int x, int y, in Fl_Window *save_front = Fl::first_window(); win->show(); Fl::check(); - CGImageRef img = ((Fl_Cocoa_Window_Driver*)win->driver())->CGImage_from_window_rect(x, y, w, h); + CGImageRef img = Fl_Cocoa_Window_Driver::driver(win)->CGImage_from_window_rect(x, y, w, h); if (save_front != win) save_front->show(); current->set_current(); ((Fl_Quartz_Graphics_Driver*)driver())->draw_CGImage(img,delta_x, delta_y, w, h, 0,0,w,h); diff --git a/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx b/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx index 1506fbbc4..e54f45750 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx +++ b/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx @@ -168,7 +168,7 @@ void Fl_Cocoa_Screen_Driver::grab(Fl_Window* win) if (win) { if (!Fl::grab_) { fl_capture = Fl_X::i(Fl::first_window())->xid; - ((Fl_Cocoa_Window_Driver*)Fl::first_window()->driver())->set_key_window(); + Fl_Cocoa_Window_Driver::driver(Fl::first_window())->set_key_window(); } Fl::grab_ = win; } else { @@ -339,7 +339,7 @@ Fl_Cocoa_Screen_Driver::read_image(uchar *p, // I - Pixel buffer or NULL to all if( (sw - x < w) || (sh - y < h) ) return NULL; } else { // reading from current window - Fl_Cocoa_Window_Driver *d = (Fl_Cocoa_Window_Driver*)Fl_Window::current()->driver(); + Fl_Cocoa_Window_Driver *d = Fl_Cocoa_Window_Driver::driver(Fl_Window::current()); base = d->bitmap_from_window_rect(x,y,w,h,&delta); if (!base) return NULL; rowBytes = delta*w; diff --git a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H index bd1071716..dba1021f8 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H +++ b/src/drivers/Cocoa/Fl_Cocoa_Window_Driver.H @@ -75,6 +75,7 @@ private: public: Fl_Cocoa_Window_Driver(Fl_Window*); ~Fl_Cocoa_Window_Driver(); + static inline Fl_Cocoa_Window_Driver* driver(Fl_Window *w) {return (Fl_Cocoa_Window_Driver*)w->driver();} CGContextRef gc; // graphics context NSCursor *cursor; static void q_release_context(Fl_Cocoa_Window_Driver *x = 0); // free all resources associated with gc diff --git a/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H b/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H index a286bcec0..775b40f9b 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H +++ b/src/drivers/WinAPI/Fl_WinAPI_Window_Driver.H @@ -68,6 +68,7 @@ private: public: Fl_WinAPI_Window_Driver(Fl_Window*); ~Fl_WinAPI_Window_Driver(); + static inline Fl_WinAPI_Window_Driver* driver(Fl_Window *w) {return (Fl_WinAPI_Window_Driver*)w->driver();} struct icon_data *icon_; HCURSOR cursor; diff --git a/src/drivers/X11/Fl_X11_Window_Driver.H b/src/drivers/X11/Fl_X11_Window_Driver.H index d49d0e9e7..79efc22ec 100644 --- a/src/drivers/X11/Fl_X11_Window_Driver.H +++ b/src/drivers/X11/Fl_X11_Window_Driver.H @@ -78,6 +78,7 @@ private: public: Fl_X11_Window_Driver(Fl_Window*); virtual ~Fl_X11_Window_Driver(); + static inline Fl_X11_Window_Driver* driver(Fl_Window *w) {return (Fl_X11_Window_Driver*)w->driver();} // --- window data virtual int decorated_w(); |
