2.5: Various Fixes
[blender.git] / source / blender / windowmanager / WM_api.h
index 9584751a77558991bd87f4fb01ce2f17715d9ee9..50ba2aec86760554a6ae90490bd819e0d9776671 100644 (file)
@@ -53,7 +53,7 @@ void          WM_main                         (struct bContext *C);
 struct wmWindow        *WM_window_open         (struct bContext *C, struct rcti *rect);
 
                        /* files */
-int                    WM_read_homefile        (struct bContext *C, int from_memory);
+int                    WM_read_homefile        (struct bContext *C, struct wmOperator *op);
 int                    WM_write_homefile       (struct bContext *C, struct wmOperator *op);
 void           WM_read_file            (struct bContext *C, char *name, struct ReportList *reports);
 void           WM_write_file           (struct bContext *C, char *target, struct ReportList *reports);
@@ -64,34 +64,35 @@ void                WM_write_autosave       (struct bContext *C);
 void           WM_cursor_set           (struct wmWindow *win, int curs);
 void           WM_cursor_modal         (struct wmWindow *win, int curs);
 void           WM_cursor_restore       (struct wmWindow *win);
-void           WM_cursor_wait          (struct wmWindow *win, int val);
+void           WM_cursor_wait          (int val);
 void           WM_timecursor           (struct wmWindow *win, int nr);
 
-void           *WM_paint_cursor_activate(struct wmWindowManager *wm, int (*poll)(struct bContext *C), void (*draw)(struct bContext *C, int, int));
+void           *WM_paint_cursor_activate(struct wmWindowManager *wm, int (*poll)(struct bContext *C), void (*draw)(struct bContext *C, int, int, void *customdata), void *customdata);
 void           WM_paint_cursor_end(struct wmWindowManager *wm, void *handle);
 
                        /* keymap */
-wmKeymapItem *WM_keymap_set_item       (ListBase *lb, char *idname, short type, 
-                                                                short val, int modifier, short keymodifier);
 wmKeymapItem *WM_keymap_verify_item(ListBase *lb, char *idname, short type, 
                                                                 short val, int modifier, short keymodifier);
-wmKeymapItem *WM_keymap_add_item       (ListBase *lb, char *idname, short type, 
+wmKeymapItem *WM_keymap_add_item(ListBase *lb, char *idname, short type, 
                                                                 short val, int modifier, short keymodifier);
+void           WM_keymap_tweak (ListBase *lb, short type, short val, int modifier, short keymodifier);
 ListBase       *WM_keymap_listbase     (struct wmWindowManager *wm, const char *nameid, 
                                                                 int spaceid, int regionid);
 
-char           *WM_key_event_string(short type);
-char           *WM_key_event_operator_string(const struct bContext *C, const char *opname, int opcontext, char *str, int len);
+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 */
 
 struct wmEventHandler *WM_event_add_keymap_handler(ListBase *handlers, ListBase *keymap);
                                                /* boundbox, optional subwindow boundbox for offset */
 struct wmEventHandler *WM_event_add_keymap_handler_bb(ListBase *handlers, ListBase *keymap, rcti *bb, rcti *swinbb);
+                                               /* priority not implemented, it adds in begin */
+struct wmEventHandler *WM_event_add_keymap_handler_priority(ListBase *handlers, ListBase *keymap, int priority);
 
 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,
@@ -104,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 */
 
@@ -118,11 +119,18 @@ void              WM_event_window_timer_sleep(struct wmWindow *win, struct wmTimer *timer, i
 int                    WM_menu_invoke                  (struct bContext *C, struct wmOperator *op, struct wmEvent *event);
                        /* invoke callback, confirm menu + exec */
 int                    WM_operator_confirm             (struct bContext *C, struct wmOperator *op, struct wmEvent *event);
+               /* invoke callback, file selector "filename" unset + exec */
+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*));
@@ -130,6 +138,7 @@ void                WM_operatortype_append_ptr      (void (*opfunc)(wmOperatorType*, void *), void
 int                    WM_operatortype_remove(const char *idname);
 
 int                    WM_operator_call                (struct bContext *C, struct wmOperator *op);
+int                    WM_operator_repeat              (struct bContext *C, struct wmOperator *op);
 int         WM_operator_name_call      (struct bContext *C, const char *opstring, int context, struct PointerRNA *properties);
 int                    WM_operator_call_py(struct bContext *C, struct wmOperatorType *ot, struct PointerRNA *properties, struct ReportList *reports);
 
@@ -144,6 +153,8 @@ int                 WM_border_select_invoke (struct bContext *C, struct wmOperator *op, struct
 int                    WM_border_select_modal  (struct bContext *C, struct wmOperator *op, struct wmEvent *event);
 int                    WM_gesture_circle_invoke(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
 int                    WM_gesture_circle_modal(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
+int                    WM_gesture_lines_invoke(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
+int                    WM_gesture_lines_modal(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
 int                    WM_gesture_lasso_invoke(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
 int                    WM_gesture_lasso_modal(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
 
@@ -154,8 +165,19 @@ void               WM_OT_tweak_gesture(struct wmOperatorType *ot);
 struct wmGesture *WM_gesture_new(struct bContext *C, struct wmEvent *event, int type);
 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);
+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           wmSubWindowSet                  (struct wmWindow *win, int swinid);
+void           wmSubWindowScissorSet   (struct wmWindow *win, int swinid, struct rcti *srct);
 
 void           wmLoadMatrix            (float mat[][4]);
 void           wmGetMatrix                     (float mat[][4]);
@@ -163,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);
@@ -176,13 +200,23 @@ int                       WM_framebuffer_to_index(unsigned int col);
 
 struct wmJob *WM_jobs_get(struct wmWindowManager *wm, struct wmWindow *win, void *owner);
 
+int                    WM_jobs_test(struct wmWindowManager *wm, void *owner);
+
 void           WM_jobs_customdata(struct wmJob *, void *customdata, void (*free)(void *));
-void           WM_jobs_timer(struct wmJob *, double timestep, unsigned int note);
+void           WM_jobs_timer(struct wmJob *, double timestep, unsigned int note, unsigned int endnote);
 void           WM_jobs_callbacks(struct wmJob *, 
                                                          void (*startjob)(void *, short *, short *),
+                                                         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 */