12 years ago2.5
Ton Roosendaal [Wed, 17 Dec 2008 15:38:40 +0000 (15:38 +0000)]

- Made a nice generic 'OK confirm' implementation for operators.
  Just use in operator type definition this line:

  ot->invoke= WM_operator_confirm;

  It will autmatically use operator name for asking OK. It will
  also use properties (if set before).

  Note for Brecht: the test okee_operator() you coded could better not
  be used in operators themselves.

  In future we can also add menus that get automatically generated
  based on operator properties. Like 'add constraint' showing the
  constraint types.

- Added this confirm call for most of the keys you'd expect it for.
  (user settings, delete marker, rip area, split region, etc).

- Cleanup: moved ed_markers.c to the util/ directory, it doesnt belong
  in space_time. Also made separate function for the marker keymap

- removed ancient redraw notifier from ghost event level (every key
  press gave full screen draw)

12 years agoView2D: Cleanup of presets and fixed errors in various views
Joshua Leung [Wed, 17 Dec 2008 10:25:02 +0000 (10:25 +0000)]
View2D: Cleanup of presets and fixed errors in various views

Now, preset view configurations are only to be used if they define all (scrollers not included) relevant settings for the view they are set for. This should be less confusing than in the previous situation with V2D_COMMONVIEW_TIMELINE stuff.

One implication of this though, is that all Animation Editors (for example), will have to define their own version of the relatively commonly shared info. However, given the great diversity in the range of settings each have, this should not be too much of an issue.

Also, added a 'standard' view config for main 'window' regions. At this stage, it is recommended that this view config should be used only as a placeholder template on which a set of custom settings could be based. I've put it into use for the buttons window/scripts window/info window so far.

12 years agoUI:
Brecht Van Lommel [Tue, 16 Dec 2008 20:03:28 +0000 (20:03 +0000)]
* Added support for defining properties for operator buttons, with
  uiButGetOperatorPtrRNA. Needed to cleanup a hack that was there
  for operator properties in RNA, now a separate OperatorProperties
  type is used for storing operator properties, instead of being part
  of the Operator type itself.
* Allow selecting menu items with mouse release instead of press again.
* Fix some cases with hanging tooltips in the UI.

12 years ago2.5
Ton Roosendaal [Tue, 16 Dec 2008 18:42:12 +0000 (18:42 +0000)]

More notifier and redraw cleanup

- notifiers are not filtered anymore, apart from window/screen notifiers,
  they get to all regions.
- fixed drawing of 'action zones' in areas.
- added support for basic multilayer draw, like for action zones now,
  and future other area decorations (tabs, region handlers)
  check: ED_area_overdraw_flush()
- bugfix in UI redraw tags, it was calling region pointer in free'd
- added notifier for marker-changed
- added keymap for markers to ipo window

12 years agoUI:
Brecht Van Lommel [Tue, 16 Dec 2008 17:36:51 +0000 (17:36 +0000)]
* Only open tooltip when the mouse is still over the button.
* Remove an unnecessary redraw call, though the two mentioned
  in the previous commit seem to be working OK (it's for action
  buttons when you move the mouse away from the button, holding
  the mouse button down).
* Fix missing alt key in key event strings.

12 years agoAdded "bpydoc" to the global namespace of python scripts, making documentation availa...
Campbell Barton [Tue, 16 Dec 2008 16:32:48 +0000 (16:32 +0000)]
Added "bpydoc" to the global namespace of python scripts, making documentation available no matter what data is open in the current blend file, Directory type was also missing from the subtype enum causing the test rna-dump script to fail.

12 years ago2.5
Ton Roosendaal [Tue, 16 Dec 2008 13:49:51 +0000 (13:49 +0000)]

Test for Brecht: this line makes drawing buttons fine.
However note:

- redraws on lines 3107 and 3024 don't do anything
- tooltip timer is messing with redraws too, if you
  have tooltips on, it continuously sends redraws.
- I would code tooltip to reset on any mouse move,
  and only start timer when mouse is still completely.
  That would make them appear much more quietly.

12 years ago2.5
Ton Roosendaal [Tue, 16 Dec 2008 13:19:02 +0000 (13:19 +0000)]

More notifier cleanup;

- removed view2d sync notifier, its data operations are too complex
  for UI hints/notes, direct calls work too :)
- updated missing gpl header in region file

Noticed weird delay on menu refreshing now... will check.

12 years ago2.5
Ton Roosendaal [Tue, 16 Dec 2008 12:28:00 +0000 (12:28 +0000)]

Work on getting notifiers in shape.

- Most important: local (to own region or area) redraw notifiers
  have been depricated. This is not a good or correct notifier anyway.
  Notifiers should be signals to other areas.

- Instead use these 2 functions:
  It seems to me good convention to keep the area/region redraw tag
  itself protected everywhere, for future improvements.

- Also added a basic WM function that checks overlapping regions,
  and flushes redraws to underlying regions. This makes menus and
  buttons allow to only send local region redraws.
  (Brought back two "swapbuffer indicators" to test this.

- Todo: area 'action zone' redraws, and fixing other notifiers...
  sending data pointers in a notifier seems to be bad idea.

12 years agoView2D: Presets for Initialising Views
Joshua Leung [Tue, 16 Dec 2008 11:24:24 +0000 (11:24 +0000)]
View2D: Presets for Initialising Views

Improved the View2D API so that initialising View2D data in init() callbacks (called on new regions and also on resizing regions) for regions is easier.

Added a few preset view configurations for use when initialising new views. Views with the V2D_IS_INITIALISED flag set will not be reinitialised in the init() callbacks. Currently, some of these configurations will set/override all settings (like V2D_COMMONVIEW_LIST and V2D_COMMONVIEW_HEADER), while other ones serve a more supplimentary role (i.e. V2D_COMMONVIEW_TIMELINE only sets the x-axis settings, relying on the region to have already set the relevant y-axis settings).
The future of such supplimentary configurations is yet to be seen, as I'm currently not sure whether they will cause the code to become too confusing, as you'd have to keep track of which settings belong/are set where. So far, only a few areas have been ported to use this. Tomorrow I'll check on a few more.

As this commit touches a lot of files, hopefully there aren't any critical bugs I've missed here.

12 years agoUI: added the following functions to create buttons for RNA properties and for
Brecht Van Lommel [Tue, 16 Dec 2008 07:55:43 +0000 (07:55 +0000)]
UI: added the following functions to create buttons for RNA properties and for
operators. RNA property buttons will automatically fill in the label, min/max,
etc if they are not specified. Operator menu buttons will look up the key
combination in the handlers and add it automatically.

uiDefButR, uiDefIconButR, uiDefIconTextButR
uiDefButO, uiDefIconButO, uiDefIconTextButO

uiDefButO takes a context pointer to do the key lookup, don't really like this..

12 years ago2.5: Fix crash in sequencer reading code.
Brecht Van Lommel [Tue, 16 Dec 2008 07:53:59 +0000 (07:53 +0000)]
2.5: Fix crash in sequencer reading code.

12 years agoWM: changed WM_operator_call to take an argument, which specifies in
Brecht Van Lommel [Tue, 16 Dec 2008 07:44:21 +0000 (07:44 +0000)]
WM: changed WM_operator_call to take an argument, which specifies in
which context to run the operator: WM_OP_DEFAULT, WM_OP_REGION_WIN,
WM_OP_AREA or WM_OP_SCREEN. This also replaces WM_operator_call_rwin
since it is more general.

This is useful for buttons and popup menus to run operators, and also
used by a new function to lookup the keymap item for that operator in
the right context.

12 years agoUI: bring back function to convert keyboard event to string, and
Brecht Van Lommel [Tue, 16 Dec 2008 07:32:12 +0000 (07:32 +0000)]
UI: bring back function to convert keyboard event to string, and
make the key event button work again.

12 years ago2.5
Ton Roosendaal [Mon, 15 Dec 2008 19:41:46 +0000 (19:41 +0000)]

Undo last commit to save screen redraws on are switching,
seems some initialize is missing.

12 years agoDepricated Image Select window, so it doesnt crash :)
Ton Roosendaal [Mon, 15 Dec 2008 19:29:53 +0000 (19:29 +0000)]
Depricated Image Select window, so it doesnt crash :)

12 years agoUI: getting popup menus to work again, just the internal interface
Brecht Van Lommel [Mon, 15 Dec 2008 19:19:39 +0000 (19:19 +0000)]
UI: getting popup menus to work again, just the internal interface
and event handling code still, how it integrates with operators and
handlers is not worked out yet. For testing, Ctrl+Q quit now shows
a confirmation popup using the following call:

okee_operator(C, "WM_OT_exit_blender", "Quit Blender");

12 years ago2.5
Ton Roosendaal [Mon, 15 Dec 2008 18:43:18 +0000 (18:43 +0000)]

Small improvements;

- switch spacedata now doesn't cause full screen refresh and draw
- cursor switching is not part of SCREEN_CHANGED notifier, this
  makes area dragging ugly.

12 years ago2.5
Ton Roosendaal [Mon, 15 Dec 2008 18:09:55 +0000 (18:09 +0000)]

Added notifiers for timeline syncing. Works for Timeline window
only now.
Note that I've removed the malloc-free in a Notifier... notifier
system is still under probabtion :)

12 years ago2.5
Ton Roosendaal [Mon, 15 Dec 2008 16:54:47 +0000 (16:54 +0000)]

Mouse cursors now work again

- centralized screen-level cursor changes, no more operator
  running for it.
- spacetypes have callback to check/set individual cursor
  types. Use notifier SCREEN_CHANGED to make sure it works
  on mode changes etc.
- new calls WM_cursor_modal() and WM_cursor_restore() to
  make temporarily cursor types during modes.
- used above for view2d cursors.

12 years agoRNA:
Brecht Van Lommel [Mon, 15 Dec 2008 13:46:50 +0000 (13:46 +0000)]
Added some functionality to make inspecting all RNA structs possible. Not used
yet, but can be tested by replacing this line in space_outliner.c:

RNA_main_pointer_create(G.main, &cell.ptr);



12 years ago2.5
Ton Roosendaal [Mon, 15 Dec 2008 13:23:55 +0000 (13:23 +0000)]

- depricated area "headbutofs" and "headbutlen", which is now fully
  replaced with view2d handling.
- needed to add header default V2D_ALIGN_NO_NEG_Y, V2D_LOCKOFS_Y seems
  to not do anything atm :)

- new: running blender in debug (blender -d) will print the current
  handler and operator in use (not mousemove)

12 years ago2.5: added support for setting RNA properties in keymap item,
Brecht Van Lommel [Mon, 15 Dec 2008 13:10:29 +0000 (13:10 +0000)]
2.5: added support for setting RNA properties in keymap item,
which will then be set when the operator is called, example:

kmi= WM_keymap_add_item(keymap, "ED_SCR_OT_region_split", SKEY, KM_PRESS, 0, 0);
RNA_enum_set(kmi->ptr, "dir", 'h');

kmi= WM_keymap_add_item(keymap, "ED_SCR_OT_region_split", SKEY, KM_PRESS, KM_SHIFT, 0);
RNA_enum_set(kmi->ptr, "dir", 'v');

There is a hack I had to do here, since properties are defined
as member of wmOperator, will try to fix later, committing now
so it can be used already.

12 years ago2.5
Ton Roosendaal [Mon, 15 Dec 2008 11:59:42 +0000 (11:59 +0000)]

Testing toy for space editor devs: press F5key in header or channel list
(or any 'alignment constrained' region to flip it to other side.

12 years agoView2D: Simplification and documentation of settings
Joshua Leung [Mon, 15 Dec 2008 11:58:57 +0000 (11:58 +0000)]
View2D: Simplification and documentation of settings

I've gone through and simplified some of the redundant options while documenting the various settings (in the code and also in the Wiki Doc), to make it clearer how to use each option.

'Preset' view-types have yet to be fully implemented, but started groundwork for this. Only some commonly used view configurations will be defined using this method. For all others, they still need to define all relavent view settings themselves (as there's too much variation in terms of the various editor's use of View2D).

IPO Editor now draws with channels on the left, like all other anim editors. Now, how to make this wider...

12 years ago2.5
Ton Roosendaal [Mon, 15 Dec 2008 11:45:17 +0000 (11:45 +0000)]

funtion WM_keymap_add_item() now returns keymap-item, so you can use it
to set default properties for operators with WM_keymap_property_set().

Brecht will fill in this function, requires rna magic!

Example: an operator ED_OB_OT_add_primitive can be configured with
keymap like this:

WM_keymap_property_set(keymapitem, "Primitivetype", "Sphere");

Similar conventions we can use later for button/menu calls.
This will make creating operators easier, allowing a developer to group
tools functionality nicely.

12 years agoRNA:
Brecht Van Lommel [Mon, 15 Dec 2008 10:48:04 +0000 (10:48 +0000)]
* DNA_sequence_types.h done, patch by Roelf de Kock, with various changes,
  mainly the use of inheritance for different sequence types and hiding the
  separate Strip struct.

12 years ago2.50: added sequence.c in blenkernel for sequencer functionality
Brecht Van Lommel [Mon, 15 Dec 2008 05:21:44 +0000 (05:21 +0000)]
2.50: added sequence.c in blenkernel for sequencer functionality
that is not supposed to be in the editor but at blenkernel level
to avoid bad level calls. Added sequencer free and strip iterator
functions there and used them to make sequencer data load/save
work again.

12 years ago2.5
Ton Roosendaal [Sun, 14 Dec 2008 19:04:20 +0000 (19:04 +0000)]

Small fix: in the ghost part of WM event handling, a function was
setting 'active subwindow' and registering headers to be drawn active
for this or not. It should be nicely inside the handler queue, so
it doesnt get executed on modal window-handlers.

(This solves flashing area headers while dragging area edges)

Still needed to resolve how screen handling goes... via handlers
with operators? On my list to keep track of. :)

12 years ago2.5 MSVC9 projectfiles
Andrea Weikert [Sun, 14 Dec 2008 18:12:30 +0000 (18:12 +0000)]
2.5 MSVC9 projectfiles
update for space_action, space_nla,  space_script, space_sequencer, space_text,space_sound.

12 years ago2.5
Ton Roosendaal [Sun, 14 Dec 2008 18:04:31 +0000 (18:04 +0000)]

OSX crashed on double-click the Finder Blender icon

Removed 7 years old hack to get the correct arguments for this case, it
was a terrible hack anyway. Needs proper code.

12 years ago2.5
Ton Roosendaal [Sun, 14 Dec 2008 17:48:52 +0000 (17:48 +0000)]

And area-joining is memory-error free again!

12 years ago2.50: svn merge -r17434...
Brecht Van Lommel [Sun, 14 Dec 2008 17:32:24 +0000 (17:32 +0000)]
2.50: svn merge -r17434:HEAD

12 years ago2.5
Ton Roosendaal [Sun, 14 Dec 2008 17:25:46 +0000 (17:25 +0000)]

Fix for crash on joining (previously splitted) areas.
Reason was the stored regions in pushed 'spaces' not being copied.

next: free running handlers on area join/split.

12 years ago2.5
Ton Roosendaal [Sun, 14 Dec 2008 14:43:08 +0000 (14:43 +0000)]

Basics for the remaining 6 spacetypes.

Note: Andrea prefers to merge SpaceImaSel with SpaceFile
for that I'll provide a good readfile.c patch later

12 years agoFix for memory leak and perhaps other issues on switching space types
Brecht Van Lommel [Sun, 14 Dec 2008 13:59:34 +0000 (13:59 +0000)]
Fix for memory leak and perhaps other issues on switching space types
in an area, the handlers (UI and keymap) were not removed.

12 years agoFix scons warning for space_file, also sorted items alphabetically.
Brecht Van Lommel [Sun, 14 Dec 2008 13:42:25 +0000 (13:42 +0000)]
Fix scons warning for space_file, also sorted items alphabetically.

12 years agoUI: fix for delayed UI callback functions, to avoid it being
Brecht Van Lommel [Sun, 14 Dec 2008 13:38:24 +0000 (13:38 +0000)]
UI: fix for delayed UI callback functions, to avoid it being
called recursively.

12 years ago* missing include path
Nathan Letwory [Sun, 14 Dec 2008 13:24:22 +0000 (13:24 +0000)]
* missing include path

12 years ago2.5 MSVC9 projectfiles
Andrea Weikert [Sun, 14 Dec 2008 13:03:33 +0000 (13:03 +0000)]
2.5 MSVC9 projectfiles
update for space_info and new files in space_file.

12 years ago2.5
Ton Roosendaal [Sun, 14 Dec 2008 12:16:55 +0000 (12:16 +0000)]

- Added file space (too) :) Andrea was first, this is more
- Suggestion from Joshua: move all standard header buttons to
  1 function, makes it all easier, less code, and less area/space
  stuff needs to be exposed.

12 years ago2.5
Joshua Leung [Sun, 14 Dec 2008 11:55:49 +0000 (11:55 +0000)]

Second attempt at fixing crashing when merging spaces after splitting them.

12 years agoView2D: More scroller related things
Joshua Leung [Sun, 14 Dec 2008 11:50:28 +0000 (11:50 +0000)]
View2D: More scroller related things

* Scrollers now keep corners free for drawing widgets if there are horizontal and vertical ones in use. They draw a rect which covers up all of the excess over-flowing drawing that was previously masked by the vertical scrollers.

* Tweaked the behaviour of the scroller zoom-handles again as they still weren't behaving correctly on vertical scrollers. This was partly caused by a typo, but also wrong checks...

12 years agoadded missing directory for space_file to Makefile, sorry
Andrea Weikert [Sun, 14 Dec 2008 11:43:38 +0000 (11:43 +0000)]
added missing directory for space_file to Makefile, sorry

12 years ago* add space_file sconscript reference too.
Nathan Letwory [Sun, 14 Dec 2008 11:41:16 +0000 (11:41 +0000)]
* add space_file sconscript reference too.

12 years ago2.5:
Joshua Leung [Sun, 14 Dec 2008 11:39:00 +0000 (11:39 +0000)]

Fixed more crashers in screen/region/area/spacetype freeing code...

Hint to Ton: watch how you're getting the pointer to the next item in the list when freeing the list ;)

12 years ago2.5
Andrea Weikert [Sun, 14 Dec 2008 11:25:00 +0000 (11:25 +0000)]

Skeleton for bringing back SpaceFile.
Code to initialize the SpaceFile struct missing still, I think this is the right time to cleanup there :)

12 years agoView2D: Bugfixes...
Joshua Leung [Sun, 14 Dec 2008 10:57:52 +0000 (10:57 +0000)]
View2D: Bugfixes...

* Headers were twitching when moved again due to a hack I had made for the TimeLine
* Properly fixed TimeLine init so that grid will start in the right place.

12 years ago2.5
Ton Roosendaal [Sun, 14 Dec 2008 10:52:48 +0000 (10:52 +0000)]

The basics for InfoSpace.
Also added InfoSpace data to area by default, older files allowed to
have nothing here (space empty). (prevents reported crasher in switching
space info to others).

Also: added ifdeffed code in readfile.c to debug missing memory frees
from data read from files. (instead of "data from SCR" it will print
the actual struct names).

12 years ago== MSVC9 projectfiles ==
Andrea Weikert [Sun, 14 Dec 2008 10:33:18 +0000 (10:33 +0000)]
== MSVC9 projectfiles ==
* lots of updates for space types/ editors: ipo, view3d, node and image
* rna: update for constraints and armatures

12 years ago2.5
Ton Roosendaal [Sun, 14 Dec 2008 10:08:00 +0000 (10:08 +0000)]

Added freeing functions in outliner space, this makes blender quit
without memory free errors in my test .b.blends.

Note: I'll move current rna viewer to new SpaceData editor, then I
can bring back original outliner stuff. Proposed menu name is
"Data Viewer". Probably better not not expose name 'rna' in UI?

12 years ago2.5 - Fixed crashes when merging areas
Joshua Leung [Sun, 14 Dec 2008 09:11:31 +0000 (09:11 +0000)]
2.5 - Fixed crashes when merging areas

12 years agoView2D: Cosmetic changes and bugfixes
Joshua Leung [Sun, 14 Dec 2008 08:32:21 +0000 (08:32 +0000)]
View2D: Cosmetic changes and bugfixes

* Scrollers now draw using nice rounded+shaded style everywhere

* When scrollers 'bubble' completely fills a scroller or is completely out of view, the view zooming using the handles is now only activated if the mouse is within a quarter of the total length of the scroller on either end of the scroller. Otherwise, pan is activated. This should make the scrollers more usable in anim editors.

* Fixed drawing of gridlines in TimeLine - needed to adjust ymin value of cur and tot rects to accomodate for the new mask/cur adjustments as old TimeLines didn't draw with 'real' scrollbars. Also, adjusted min/max values to fit these new tot/cur rect y-sizes.

* Tidying up vars and fixing errors in declaring new View2D types in preparation for simpler method of initialising views...

12 years ago2.5
Ton Roosendaal [Sat, 13 Dec 2008 19:08:44 +0000 (19:08 +0000)]

Added missing basic callbacks for region drawing of view3d and
ipo channels.

12 years ago2.5
Ton Roosendaal [Sat, 13 Dec 2008 19:00:54 +0000 (19:00 +0000)]

Added basics for oour precious Buttons Window. The one that will be
(OH NO!) vertical one day? ;)

12 years ago2.5
Ton Roosendaal [Sat, 13 Dec 2008 18:09:49 +0000 (18:09 +0000)]

The basics for Node Space.... no complaints sofar :)

12 years ago2.5
Ton Roosendaal [Sat, 13 Dec 2008 17:44:30 +0000 (17:44 +0000)]

Added basic code for Space Image. Now let's check if this
commit has all it needed :)

12 years ago2.5
Ton Roosendaal [Sat, 13 Dec 2008 11:34:03 +0000 (11:34 +0000)]

Bugfix in the "map cur with mask to region". Division had to be switched. :)

12 years agoView2D:
Joshua Leung [Sat, 13 Dec 2008 09:25:47 +0000 (09:25 +0000)]

* Grid calculation now takes separate args for x/y units and clamping
* Timeline now gets V2D_LOCKZOOM_Y flag to prevent zooming in y-axis

12 years agoRNA: start of wrapping for Constraints
Joshua Leung [Fri, 12 Dec 2008 23:30:23 +0000 (23:30 +0000)]
RNA: start of wrapping for Constraints

Still need to find out how to get the variable struct-type for constraint->data to work correctly. Any ideas brecht?

12 years agoView2d: Removing some debug code I left in...
Joshua Leung [Fri, 12 Dec 2008 23:28:47 +0000 (23:28 +0000)]
View2d: Removing some debug code I left in...

12 years ago2.5 - Assorted View2D related fixes
Joshua Leung [Fri, 12 Dec 2008 23:25:54 +0000 (23:25 +0000)]
2.5 - Assorted View2D related fixes

IPO Editor Fixes:
* Grid now draws correct. Fixed typo in gridline calculations preventing drawing from occurring. Also, set the right arguments to the appropriate View2D calls.
* Limited Ton's cur<->mask mapping 'hack' to Outliner only, as it was causing problems with the drawing of the grid. Perhaps there's still some faulty code in curRect_validate that should be changed instead...
* Horizontal scroller draws frames now by default. However, the values are still offset a bit, so will need further investigation.

Outliner Fixes:
* Fixed overlapping text problem with RNA-path and menus. Now RNA path draws as a label beside the menus, so there shouldn't be any more problems there.
* do_versions code now sets all appropriate flags, as old OOPS views could cause errors with scroller drawing + view manipulation operators which depend on flags being set.

12 years ago* spacetype time -> spacetype ipo
Nathan Letwory [Fri, 12 Dec 2008 20:59:59 +0000 (20:59 +0000)]
* spacetype time -> spacetype ipo

12 years agostarted whiping cmake into shape for 2.5 still need to figure out
Kent Mein [Fri, 12 Dec 2008 20:41:30 +0000 (20:41 +0000)]
started whiping cmake into shape for 2.5  still need to figure out
the rna stuff but its close.  Need to get it working for
blender then copy over same to game engine.


12 years ago* To have IPO editor get both compiled and link, we also make sure it is actually...
Nathan Letwory [Fri, 12 Dec 2008 20:11:45 +0000 (20:11 +0000)]
* To have IPO editor get both compiled and link, we also make sure it is actually built and linked to.

12 years ago2.5
Ton Roosendaal [Fri, 12 Dec 2008 19:19:09 +0000 (19:19 +0000)]
Another make file...

12 years ago2.5
Ton Roosendaal [Fri, 12 Dec 2008 18:56:15 +0000 (18:56 +0000)]

Scons was missing WM includes

12 years ago2.5
Ton Roosendaal [Fri, 12 Dec 2008 18:47:12 +0000 (18:47 +0000)]

- Added rudimentary support for Ipo window
  (Joshua can check on view2d issues for this? :)

- removed ED_area.h, added ED_space_api.h

12 years ago2.5
Ton Roosendaal [Fri, 12 Dec 2008 17:10:54 +0000 (17:10 +0000)]

- found fix for time-space view2d when increasing height of area,   it has min/max Y zoom stored based on size of area... needs
  smarter way.

- outliner: header file added, area switch menu + dummy pulldown.
  this will become template for other space types...

12 years ago2.5
Ton Roosendaal [Fri, 12 Dec 2008 16:29:33 +0000 (16:29 +0000)]

Fixes in view2d:

- mask/slider rects were calculated wrong 1 pixel (was overlapping)
- found bug with outliner stretching on area-edge-dragging. It required
  an extra mapping of the 'cur view' via mask to actual region.
- added v2d sanity check for uninitialized v2d's
- removed cruft in do_versions for headers (gets catched with above)
- added header-view2d-initialize function, for new-space calls

Fixes in areamanager:

- fixes in 'new space' for time/outliner/view2d

For Joshua:

- Making time window higher shows it doesn't update 'cur'. Not sure
  what kind of v2d flag should be checked or set?

12 years agoView2D: Cosmetic tweaks for scrollers
Joshua Leung [Fri, 12 Dec 2008 11:41:05 +0000 (11:41 +0000)]
View2D: Cosmetic tweaks for scrollers

Scrollers now draw in the 'rounded + shaded' style as much of the rest of Blender now. This is just a rough draft of what they could look like (vertical scrollbers in particular highlight the need for a complementary version of gl_round_box_shade).

12 years ago2.5
Ton Roosendaal [Fri, 12 Dec 2008 10:55:36 +0000 (10:55 +0000)]

Removed notifier SCREEN_CHANGED from creating menus or tooltips.
This one is used to re-initialize spaces, areas, regions in screen.

12 years ago2.5
Ton Roosendaal [Fri, 12 Dec 2008 10:18:26 +0000 (10:18 +0000)]

Resolved cyclic calls for editors.
Now there's a space_api/ module, here you can use functions calling
other editor modules. The functions in the module are only used by
the WindowManager module to initialize space types.

Note for sconzers and MSVC and cmake: the proper linking order for
editors is:

- space_api
- space_xxx
- object / mesh / transform / etc
- interface
- util / datafiles
- screen

12 years ago2.5 - Fixed crashes when closing windows
Joshua Leung [Thu, 11 Dec 2008 23:05:18 +0000 (23:05 +0000)]
2.5 - Fixed crashes when closing windows

12 years ago2.5 - Compiling fix (ED_newspace not defined yet)
Joshua Leung [Thu, 11 Dec 2008 22:30:24 +0000 (22:30 +0000)]
2.5 - Compiling fix (ED_newspace not defined yet)

12 years agoUI: restored mechanism to only call button/block callback functions
Brecht Van Lommel [Thu, 11 Dec 2008 20:30:41 +0000 (20:30 +0000)]
UI: restored mechanism to only call button/block callback functions
after the menus are closed, to avoid conflicts with those callbacks
manipulating their own area or region.

12 years ago2.5
Ton Roosendaal [Thu, 11 Dec 2008 19:35:27 +0000 (19:35 +0000)]

Today's progress; half working, but i better commit to prevent
conflicts tomorrow :)

- added storage for regions in spacedata
- added space switching (unfinished, gives mem-free errors)
- bugfix: icon of timewindow gave error on split-area
- cleaned interface_icons.c a bit, no warnings
- first work on space new() callbacks, they have to make regions too

NOTE: probably files saved with 2.5 crash now. Have to look at
patching this.

NOTE2: the Makefiles required libeditor screen twice... scons too?

12 years ago2.5
Ton Roosendaal [Thu, 11 Dec 2008 15:38:16 +0000 (15:38 +0000)]

TimeLine window pulldowns work sorta (for the options that were coded :)

Still trying to bring back code without recoding uiDefButs. In future these
will get directly operator stuff linked. For time being made a simple
operator call function, like:

WM_operator_call(C, "ED_MARKER_OT_add");

and for forcing operator to run in the main region-window:

WM_operator_call_rwin(C, "ED_MARKER_OT_add");

These calls also work for modal operators, like marker grab in this case.

12 years ago2.5
Ton Roosendaal [Thu, 11 Dec 2008 14:59:57 +0000 (14:59 +0000)]

Small fix: Screen state  updating should be blocked while menus are open.
Caused draw errors for activated headers. Todo is: bring back separation
between window-handlers and screen-handlers, to solve this?

12 years agoRNA - Finished wrapping Armatures + Bones
Joshua Leung [Thu, 11 Dec 2008 10:36:40 +0000 (10:36 +0000)]
RNA - Finished wrapping Armatures + Bones

- I'm not sure whether we want to move out the PoseMode hide flags from here, but PoseChannels directly get most of their flags from here.
- Some of the settings for Bones have not been exposed, as they are mostly internal flags or used only by transform
- I'm not sure whether we should be exposing EditMode settings like head/tail/roll directly here...

12 years agoView2D: Various Fixes + Header Support
Joshua Leung [Thu, 11 Dec 2008 03:50:50 +0000 (03:50 +0000)]
View2D: Various Fixes + Header Support

Added support for panning headers using View2D of the header regions (only done for TimeLine, as only that one has buttons on it).
Currently, this uses some do_versions magic to initialise the View2D rects required, however, I'm not sure if all the information was safely ported over yet (notably height and position of rects due to alignment issues).

In the process, I noticed a few bugs with the current View2D code:
* UI_view2d_curRect_validate() is now called after UI_view2d_size_update(), as the size of the 'mask' rect is closely related to the size of the 'cur' rect (especially when zooming is locked).
* Fixed a bug in UI_view2d_curRect_validate() which meant that if the 'cur' rect was slightly larger than the 'tot' rect, and keeptot was set, the view would flicker between the two closely related positions.

12 years agoUI:
Brecht Van Lommel [Wed, 10 Dec 2008 19:22:10 +0000 (19:22 +0000)]
* Added context pointer to function callbacks for buttons and blocks.
* Added a uiBlockSetHandleFunc, which will be called with the button
  return value. This seems kind of redundant with uiBlockSetButmFunc,
  but the latter uses a2 to pass the value.

12 years ago2.5
Ton Roosendaal [Wed, 10 Dec 2008 17:58:18 +0000 (17:58 +0000)]

- Brought back (most of) buttons in TimeLine window.
  They don't work yet though! Waiting for Brecht to commit callbacks
  for menus and ui-blocks

- Area headers hilite again when mouse is inside.

12 years ago2.5
Ton Roosendaal [Wed, 10 Dec 2008 15:12:46 +0000 (15:12 +0000)]

Fix: on quit with a ghost event, windows were freed without freeing screens.

12 years ago2.5
Ton Roosendaal [Wed, 10 Dec 2008 13:56:54 +0000 (13:56 +0000)]

Cleanup in area/region management

- more intelligence in area management for adding handlers and setting
  data correct. Space/Region type callbacks only have to do own things.

- added option for adding default handlers to areas/regions. (flag in
  type definition)

- ensured that region-types store the minsizes for regions.

- added boundbox check for handlers; note that it accepts pointer to
  boundbox, because handlers don't get reset on area-resizing or
  view changes. Example: view2d handlers use mask rect.

- handlers get now added on correct context levels (example frame change
  also worked in header)

- removed ->refresh() callback. Context refreshing is Listener.

- the ->init() is being called on all WM level actions, also after a
  file read, moving areas, re-opening areas etc.

- fixed bug: crash on exit was caused by cleaning up Screen too late.

- UI_view2d_size_update() removed from draw callback, is init()

- regions now store (winx, winy) subwindow size.

12 years agoRNA - Wrapped a few more Armature/Bone settings
Joshua Leung [Wed, 10 Dec 2008 12:00:36 +0000 (12:00 +0000)]
RNA - Wrapped a few more Armature/Bone settings

* I've only got a few more Armature settings to go (path stuff)
* Bones have still only got name + layers so far

12 years agoView2D - Bugfixes
Joshua Leung [Wed, 10 Dec 2008 09:07:15 +0000 (09:07 +0000)]
View2D - Bugfixes

Fixed a few typos in View2D code, which included the zoom-locking flags not being checked for correctly by the zoom operators.

This commit does NOT fix the problems with the Outliner 'cur' rect expanding/contracting as the view changes size. I still haven't found the cause of this, but it might be related to the off-by-1 errors with UI-widgets that brecht noted in TimeLine header...

12 years agoUI: don't use operators anymore for handling user interface events, but rather
Brecht Van Lommel [Wed, 10 Dec 2008 04:36:33 +0000 (04:36 +0000)]
UI: don't use operators anymore for handling user interface events, but rather
a special UI handler which makes the code clearer. This UI handler is attached
to the region along with other handlers, and also gets a callback when all
handlers for the region are removed to ensure things are properly cleaned up.
This should fix XXX's in the UI code related to events and context switching.

Most of the changes are in interface_handlers.c, which was renamed from
interface_ops.c, to convert operators to the UI handler. UI code notes:
* uiBeginBlock/uiEndBlock/uiFreeBlocks now takes a context argument, this is
  required to properly cancel things like timers or tooltips when the region
  gets removed.
* UI_add_region_handlers will add the region level UI handlers, to be used
  when adding keymap handlers etc. This replaces the UI keymap.
* When the UI code starts a modal interaction (number sliding, text editing,
  opening a menu, ..), it will add an UI handler at the window level which
  will block events.

Windowmanager changes:
* Added an UI handler next to the existing keymap and operator modal handlers.
  It has an event handling and remove callback, and like operator modal handlers
  will remember the area and region if it is registered at the window level.
* Removed the MESSAGE event.
* Operator cancel and UI handler remove callbacks now get the
  window/area/region restored in the context, like the operator modal and UI
  handler event callbacks.
* Regions now receive MOUSEMOVE events for the mouse going outside of the
  region. This was already happening for areas, but UI buttons are at the region
  level so we need it there.

* Tooltips and menus stay open when switching to another window, and button
  highlight doesn't work without moving the mouse first when Blender starts up.
  I tried using some events like Q_FIRSTTIME, WINTHAW, but those don't seem to
* Timeline header buttons seem to be moving one pixel or so sometimes when
  interacting with them.
* Seems not due to this commit, but UI and keymap handlers are leaking. It
  seems that handlers are being added to regions in all screens, also in regions
  of areas that are not visible, but these handlers are not removed. Probably
  there should only be handlers in visible regions?

12 years ago2.5
Ton Roosendaal [Tue, 9 Dec 2008 15:59:43 +0000 (15:59 +0000)]

Area Manager: revised how an area subdivision gets managed. Originally
the 'spacedata' would store regiondata too, but this already became
impractical (like having view2d data in region is useful). So I left
that part how it is. See new diagram:

This means that regions in an Area define location/size or constraints
for how they get arranged. The "RegionType" which is linked to this
defines its functionality.

For fun, test, and code validation: two temporary hotkeys added.
SKEY: splits current region horizontally
SHIFT+S: splits vertically

Note - in outliner - that "context" sticks to the Area as whole, the region
here only defines view. That's the purpose. :) For two outliners with different
context you open 2 areas.
Also note that dragging screen-edges shows the region-alignment type (split
with percentage).

12 years agoRNA: Start of RNA wrapping for Armatures
Joshua Leung [Tue, 9 Dec 2008 11:29:40 +0000 (11:29 +0000)]
RNA: Start of RNA wrapping for Armatures

Wrapped most of Armature settings, but bones are not yet complete.

12 years ago2.5 - Swapped order for adding View2D keymaps in TimeLine so that they can still...
Joshua Leung [Tue, 9 Dec 2008 06:23:40 +0000 (06:23 +0000)]
2.5 - Swapped order for adding View2D keymaps in TimeLine so that they can still work.

12 years ago2.5
Ton Roosendaal [Mon, 8 Dec 2008 19:16:47 +0000 (19:16 +0000)]

Stupid error made blender not compile!

12 years ago2.5
Ton Roosendaal [Mon, 8 Dec 2008 16:43:19 +0000 (16:43 +0000)]

Minor cleanups.

12 years ago2.5
Ton Roosendaal [Mon, 8 Dec 2008 15:02:57 +0000 (15:02 +0000)]

Part one of wrapping up area/region management.
Read design doc here:

This commit:
- brings keymap storage to WM, based on names/types. This structure
  allows rna-ifying it too, so you can browse keymaps etc.
- creating areas and regions works slightly different now, wich
  regiontypes stored in areatype.

- better callbacks and structure for defining which handlers need to
  be added.
- using region types to validate regions
- proper implementation of local region data
- code method for customizing keymaps. Current idea is that you have
  to indicate an entire keymap to be custom, to prevent too complicated
  merging problems of default and custom maps (like order, multiple keys
  for same operator, disabling options, etc).

12 years agoView2D: Tweaks to make handles work better with no-clamping of bubble
Joshua Leung [Mon, 8 Dec 2008 00:48:27 +0000 (00:48 +0000)]
View2D: Tweaks to make handles work better with no-clamping of bubble

12 years agofixing compile error
Martin Poirier [Mon, 8 Dec 2008 00:40:27 +0000 (00:40 +0000)]
fixing compile error

12 years agoView2D: Modal Ctrl-MMB-drag Zoom Restored
Joshua Leung [Sun, 7 Dec 2008 23:54:41 +0000 (23:54 +0000)]
View2D: Modal Ctrl-MMB-drag Zoom Restored

Added back the Ctrl-MMB-drag zoom.
* It uses RNA-props for delta amounts to be added to the cur rect, as opposed to storing a transform factor like the others.
* Made the operator another repeatable one
* The user-pref Continue/Dolly/Scale options are still respected. Currently, this is not stored as an RNA-prop for repeated behaviour, as it is not necessary for this operator to function correctly (and also, this data would fall under 'context' info more)

Removed clamping of scroller 'bubble' to bounds of scroller, as it produced a confusing display when using handles to zoom view.

12 years agoView2D: Minor tweaks to scrollbar drawing
Joshua Leung [Sun, 7 Dec 2008 22:19:41 +0000 (22:19 +0000)]
View2D: Minor tweaks to scrollbar drawing

Handles on ends of bubble are now drawn as rects. When that axis is zoomable, the handles are darker than when they are not.

12 years ago* blenderlite works now on windows too.
Nathan Letwory [Sun, 7 Dec 2008 13:22:50 +0000 (13:22 +0000)]
* blenderlite works now on windows too.
  - when WITH_BF_SDL=True entry-point is mainCTRStartup (due to SDL)
  - with WITH_BF_SDL=False this should be just main

12 years agoView2D: Scroller Manipulations
Joshua Leung [Sun, 7 Dec 2008 12:15:04 +0000 (12:15 +0000)]
View2D: Scroller Manipulations

Implemented operator to work with scrollers. This should work reasonably well, but as always, more testing is needed.
* LMB-drag can now be used to initiate manipulations of scrollbars (so they can be dragged as per normal)
* By clicking on the 'dark regions' on the ends of the scroll bubble, it is possible to zoom the view (in a way similar to Sony Vegas scrollbars)

Tidied up code of other operators
* Re-labelled the current zoom operators, as there is still a modal click-drag zoom tool to be ported still
* Marked all of the existing view manipulation operators as redoable. Scrollers manipulator is not allowed to be redoable.

Assorted changes:
* Added more flags for Outliner on reading old files, to prevent more weird things happening as code expects certain flags these days