2.5: Various Fixes
[blender.git] / source / blender / windowmanager / WM_api.h
index f0f8996cca9bdee063f182365668bf24308261a1..50ba2aec86760554a6ae90490bd819e0d9776671 100644 (file)
@@ -79,7 +79,7 @@ void          WM_keymap_tweak (ListBase *lb, short type, short val, int modifier, short
 ListBase       *WM_keymap_listbase     (struct wmWindowManager *wm, const char *nameid, 
                                                                 int spaceid, int regionid);
 
-char           *WM_key_event_string(short type);
+const char     *WM_key_event_string(short type);
 char           *WM_key_event_operator_string(const struct bContext *C, const char *opname, int opcontext, struct IDProperty *properties, char *str, int len);
 
                        /* handlers */
@@ -92,7 +92,7 @@ struct wmEventHandler *WM_event_add_keymap_handler_priority(ListBase *handlers,
 
 void           WM_event_remove_keymap_handler(ListBase *handlers, ListBase *keymap);
 
-struct wmEventHandler *WM_event_add_ui_handler(struct bContext *C, ListBase *handlers,
+struct wmEventHandler *WM_event_add_ui_handler(const struct bContext *C, ListBase *handlers,
                        int (*func)(struct bContext *C, struct wmEvent *event, void *userdata),
                        void (*remove)(struct bContext *C, void *userdata), void *userdata);
 void           WM_event_remove_ui_handler(ListBase *handlers,
@@ -105,7 +105,7 @@ void                WM_event_remove_handlers(struct bContext *C, ListBase *handlers);
 void           WM_event_add_mousemove(struct bContext *C);
 int                    WM_modal_tweak_exit(struct wmEvent *evt, int tweak_event);
 
-void           WM_event_add_notifier(struct bContext *C, unsigned int type, void *data);
+void           WM_event_add_notifier(const struct bContext *C, unsigned int type, void *data);
 
 void           wm_event_add            (struct wmWindow *win, struct wmEvent *event_to_add); /* XXX only for warning */
 
@@ -123,9 +123,14 @@ int                        WM_operator_confirm             (struct bContext *C, struct wmOperator *op, struct wm
 int                    WM_operator_filesel             (struct bContext *C, struct wmOperator *op, struct wmEvent *event);
                        /* poll callback, context checks */
 int                    WM_operator_winactive   (struct bContext *C);
+                       /* invoke callback, exec + redo popup */
+int                    WM_operator_props_popup (struct bContext *C, struct wmOperator *op, struct wmEvent *event);
+int                    WM_operator_redo_popup  (struct bContext *C, struct wmOperator *op);
 
                /* operator api */
 void           WM_operator_free                (struct wmOperator *op);
+void           WM_operator_stack_clear(struct bContext *C);
+
 wmOperatorType *WM_operatortype_find(const char *idname);
 wmOperatorType *WM_operatortype_first(void);
 void           WM_operatortype_append  (void (*opfunc)(wmOperatorType*));
@@ -161,11 +166,15 @@ struct wmGesture *WM_gesture_new(struct bContext *C, struct wmEvent *event, int
 void           WM_gesture_end(struct bContext *C, struct wmGesture *gesture);
 
                        /* radial control operator */
-int            WM_radial_control_invoke(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
-int            WM_radial_control_modal(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
+int                    WM_radial_control_invoke(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
+int                    WM_radial_control_modal(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
 void           WM_OT_radial_control_partial(struct wmOperatorType *ot);
 void           WM_radial_control_string(struct wmOperator *op, char str[], int maxlen);
 
+                       /* fileselecting support */
+void           WM_event_add_fileselect(struct bContext *C, struct wmOperator *op);
+void           WM_event_fileselect_event(struct bContext *C, void *ophandle, int eventval);
+
                        /* OpenGL wrappers, mimicking opengl syntax */
 void           wmSubWindowSet                  (struct wmWindow *win, int swinid);
 void           wmSubWindowScissorSet   (struct wmWindow *win, int swinid, struct rcti *srct);
@@ -176,6 +185,8 @@ void                wmMultMatrix            (float mat[][4]);
 void           wmGetSingleMatrix       (float mat[][4]);
 void           wmScale                         (float x, float y, float z);
 void           wmLoadIdentity          (void);         /* note: old name clear_view_mat */
+void           wmPushMatrix            (void);         /* one level only */
+void           wmPopMatrix                     (void);         /* one level only */
 
 void           wmFrustum                       (float x1, float x2, float y1, float y2, float n, float f);
 void           wmOrtho                         (float x1, float x2, float y1, float y2, float n, float f);
@@ -198,8 +209,14 @@ void               WM_jobs_callbacks(struct wmJob *,
                                                          void (*initjob)(void *),
                                                          void (*update)(void *));
 
-void           WM_jobs_start(struct wmJob *);
+void           WM_jobs_start(struct wmWindowManager *wm, struct wmJob *);
+void           WM_jobs_stop(struct wmWindowManager *wm, void *owner);
 void           WM_jobs_stop_all(struct wmWindowManager *wm);
 
+                       /* clipboard */
+char           *WM_clipboard_text_get(int selection);
+void           WM_clipboard_text_set(char *buf, int selection);
+
+
 #endif /* WM_API_H */