Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2004-05-04 23:10:55 +0400
committerDaniel Dunbar <daniel@zuster.org>2004-05-04 23:10:55 +0400
commit400cd96effacc007b4b445cffc34884d718dafed (patch)
tree84c75bc9f06a2df84ffe28587c9b7e6e2b330382 /source
parent2620ee4dc2ad101f5581b947ef861c4526402639 (diff)
- ugh, do not break open an abstract data type just to add one single
function, especially when you are introducing extra dependencies (GHOST) on files that should not have them.
Diffstat (limited to 'source')
-rw-r--r--source/blender/src/cursors.c19
-rw-r--r--source/blender/src/ghostwinlay.c47
-rw-r--r--source/blender/src/winlay.h31
3 files changed, 51 insertions, 46 deletions
diff --git a/source/blender/src/cursors.c b/source/blender/src/cursors.c
index bc720b28961..f254156c307 100644
--- a/source/blender/src/cursors.c
+++ b/source/blender/src/cursors.c
@@ -48,7 +48,6 @@
#include "BIF_graphics.h"
#include "BIF_screen.h"
-#include "GHOST_C-api.h"
#include "winlay.h"
@@ -99,7 +98,6 @@ void SetBlenderCursor(short curs){
win=winlay_get_active_window();
if (win==NULL) return; /* Can't set custom cursor before Window init */
- if (win->ghostwin==NULL) return;
LastCursor=CurrentCursor;
CurrentCursor=curs;
@@ -110,23 +108,10 @@ void SetBlenderCursor(short curs){
set_cursor(CURSOR_STD);
}
else if ( (U.curssize==0) || (BlenderCursor[curs]->big_bm == NULL) ) {
- /*printf("setting small cursor\n");*/
- GHOST_SetCustomCursorShapeEx(win->ghostwin,
- BlenderCursor[curs]->small_bm, BlenderCursor[curs]->small_mask,
- BlenderCursor[curs]->small_sizex,BlenderCursor[curs]->small_sizey,
- BlenderCursor[curs]->small_hotx,BlenderCursor[curs]->small_hoty,
- BlenderCursor[curs]->fg_color, BlenderCursor[curs]->bg_color
- );
+ window_set_custom_cursor_ex(win, BlenderCursor[curs], 0);
}
else {
- /*printf("setting big cursor\n");*/
- GHOST_SetCustomCursorShapeEx(win->ghostwin,
- BlenderCursor[curs]->big_bm, BlenderCursor[curs]->big_mask,
- BlenderCursor[curs]->big_sizex,BlenderCursor[curs]->big_sizey,
- BlenderCursor[curs]->big_hotx,BlenderCursor[curs]->big_hoty,
- BlenderCursor[curs]->fg_color, BlenderCursor[curs]->bg_color
- );
-
+ window_set_custom_cursor_ex(win, BlenderCursor[curs], 1);
}
}
diff --git a/source/blender/src/ghostwinlay.c b/source/blender/src/ghostwinlay.c
index b6a7c8ba354..0cb396d25cb 100644
--- a/source/blender/src/ghostwinlay.c
+++ b/source/blender/src/ghostwinlay.c
@@ -57,12 +57,43 @@
#include "BIF_mywindow.h"
#include "BIF_screen.h"
#include "BIF_usiblender.h"
+#include "BIF_cursors.h"
#include "mydevice.h"
#include "blendef.h"
#include "winlay.h"
+///
+
+struct _Window {
+ GHOST_WindowHandle ghostwin;
+
+ /* Handler and private data for handler */
+ WindowHandlerFP handler;
+ void *user_data;
+
+ /* Window state */
+ int size[2], position[2];
+ int active, visible;
+
+ /* Last known mouse/button/qualifier state */
+ int lmouse[2];
+ int lqual; /* (LR_SHFTKEY, LR_CTRLKEY, LR_ALTKEY) */
+ int lmbut; /* (L_MOUSE, M_MOUSE, R_MOUSE) */
+ int commandqual;
+
+ /* Tracks the faked mouse button, if non-zero it is
+ * the event number of the last faked button.
+ */
+ int faked_mbut;
+
+ GHOST_TimerTaskHandle timer;
+ int timer_event;
+};
+
+///
+
static GHOST_SystemHandle g_system= 0;
/* Some simple ghost <-> blender conversions */
@@ -306,6 +337,22 @@ void window_set_custom_cursor(Window *win, unsigned char mask[16][2],
GHOST_SetCustomCursorShape(win->ghostwin, bitmap, mask, hotx, hoty);
}
+void window_set_custom_cursor_ex(Window *win, BCursor *cursor, int useBig) {
+ if (useBig) {
+ GHOST_SetCustomCursorShapeEx(win->ghostwin,
+ cursor->big_bm, cursor->big_mask,
+ cursor->big_sizex,cursor->big_sizey,
+ cursor->big_hotx,cursor->big_hoty,
+ cursor->fg_color, cursor->bg_color);
+ } else {
+ GHOST_SetCustomCursorShapeEx(win->ghostwin,
+ cursor->small_bm, cursor->small_mask,
+ cursor->small_sizex,cursor->small_sizey,
+ cursor->small_hotx,cursor->small_hoty,
+ cursor->fg_color, cursor->bg_color);
+ }
+}
+
void window_make_active(Window *win) {
if (win != active_gl_window) {
active_gl_window= win;
diff --git a/source/blender/src/winlay.h b/source/blender/src/winlay.h
index 29b15700fcf..b30e7955dc8 100644
--- a/source/blender/src/winlay.h
+++ b/source/blender/src/winlay.h
@@ -32,9 +32,8 @@
/* Abstract window operations */
-#include "GHOST_C-api.h"
-
typedef struct _Window Window;
+typedef struct BCursor BCursor;
typedef void (*WindowHandlerFP) (Window *win, void *user_data, short evt, short val, char ascii);
Window* window_open (char *title, int x, int y, int width, int height, int start_maximized);
@@ -68,6 +67,7 @@ void window_set_title (Window *win, char *title);
void window_set_cursor (Window *win, int cursor);
void window_set_custom_cursor (Window *win, unsigned char mask[16][2],
unsigned char bitmap[16][2], int hotx, int hoty );
+void window_set_custom_cursor_ex (Window *win, BCursor *cursor, int useBig);
void window_warp_pointer (Window *win, int x, int y);
@@ -80,30 +80,3 @@ Window* winlay_get_active_window(void);
void winlay_process_events (int wait_for_event);
void winlay_get_screensize (int *width_r, int *height_r);
-
-
-struct _Window {
- GHOST_WindowHandle ghostwin;
-
- /* Handler and private data for handler */
- WindowHandlerFP handler;
- void *user_data;
-
- /* Window state */
- int size[2], position[2];
- int active, visible;
-
- /* Last known mouse/button/qualifier state */
- int lmouse[2];
- int lqual; /* (LR_SHFTKEY, LR_CTRLKEY, LR_ALTKEY) */
- int lmbut; /* (L_MOUSE, M_MOUSE, R_MOUSE) */
- int commandqual;
-
- /* Tracks the faked mouse button, if non-zero it is
- * the event number of the last faked button.
- */
- int faked_mbut;
-
- GHOST_TimerTaskHandle timer;
- int timer_event;
-};