13 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...

13 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.

13 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.

13 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.

13 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. :)

13 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.

13 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.

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

And area-joining is memory-error free again!

13 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

13 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.

13 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

13 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.

13 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.

13 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.

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

13 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.

13 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.

13 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.

13 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...

13 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

13 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.

13 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 ;)

13 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 :)

13 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.

13 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).

13 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

13 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?

13 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

13 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...

13 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.

13 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? ;)

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

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

13 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 :)

13 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. :)

13 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

13 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?

13 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...

13 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.

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

13 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.


13 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.

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

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

Scons was missing WM includes

13 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

13 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...

13 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?

13 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).

13 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.

13 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

13 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

13 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)

13 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.

13 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?

13 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.

13 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?

13 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...

13 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.

13 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.

13 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.

13 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.

13 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.

13 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

13 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...

13 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?

13 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).

13 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.

13 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.

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

Stupid error made blender not compile!

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

Minor cleanups.

13 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).

13 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

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

13 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.

13 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.

13 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

13 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

13 years ago* put the PyRNA testing bit inside the DISABLE_PYTHON define, so we can use blenderli...
Nathan Letwory [Sun, 7 Dec 2008 10:55:33 +0000 (10:55 +0000)]
* put the PyRNA testing bit inside the DISABLE_PYTHON define, so we can use blenderlite as target too

13 years agoView2D: Renamed a few API methods to follow standard naming conventions, and added...
Joshua Leung [Sun, 7 Dec 2008 06:21:06 +0000 (06:21 +0000)]
View2D: Renamed a few API methods to follow standard naming conventions, and added define to use when an argument to these methods is irrelevant.

13 years agoView2D: TimeCode display when displaying 'Seconds' not 'Frames'
Joshua Leung [Sun, 7 Dec 2008 03:42:25 +0000 (03:42 +0000)]
View2D: TimeCode display when displaying 'Seconds' not 'Frames'

When time grids are drawn in 'seconds' not 'frames' (use the TKEY to toggle this in Timeline for testing), times are now printed in a timecode format similar to SMPTE. It deviates from SMPTE in several respects, otherwise the timecodes will collide with the current grid spacings (Note: this will be subject to review in future).

* Hours will only be shown when they are needed. This shouldn't cause too many problems, since it is highly unlikely to get sequences, etc. that long.
* Frames are only shown when zoomed in close enough. When they are shown, display of minutes is generally ommitted unless significant.
* I've used the semicolon (;) character as the delimeter between frames and seconds. This seems to be the convention in Final Cut Pro, Vegas, and Quicktime...


Also in this commit:
* added UI_view2d_status_enforce() call to the end of UI_view2d_totRect_set(), so that the caller will not have to worry about doing so.

* swapped the order of V2D_GRID_(NO)CLAMP defines so to be more consistent with older versions of Blender. Default (0) is now no-clamping.

13 years ago2.5
Ton Roosendaal [Sat, 6 Dec 2008 16:22:21 +0000 (16:22 +0000)]

Mainwindow had wrong subwindow rect definition.

13 years agoView2D - Bugfix for grid calculation for 'frames'
Joshua Leung [Sat, 6 Dec 2008 10:25:51 +0000 (10:25 +0000)]
View2D - Bugfix for grid calculation for 'frames'

Grid calculations for frames and seconds were mixed up, meaning that grid was often off.

13 years agoView2D: Code cleanup - UI_view2d_status_enforce()
Joshua Leung [Sat, 6 Dec 2008 09:25:42 +0000 (09:25 +0000)]
View2D: Code cleanup - UI_view2d_status_enforce()

This commit *should* bring UI_view2d_status_enforce() (formerly known in pre 2.5 as test_view2d) under control again.
I've attempted to reduce the amount of duplicated code here, so hopefully there won't be any nasty bugs that will show up in some of the other views when they are ported.

Summary of changes:
* Restored V2D_KEEPZOOM flag which I had previously removed, having misunderstood its function.
* Fixed bugs with resizing Outliner window
* Outliner width is now columns + 1 again. Documented reasons for this (otherwise, stuff gets covered by scrollbars, but we cannot see it)

13 years ago* seems like cur and tot were mixed up, thus preventing panning from working
Nathan Letwory [Fri, 5 Dec 2008 18:41:28 +0000 (18:41 +0000)]
* seems like cur and tot were mixed up, thus preventing panning from working

13 years agoView2D API: Cleaning up API + New Methods
Joshua Leung [Fri, 5 Dec 2008 02:03:37 +0000 (02:03 +0000)]
View2D API: Cleaning up API + New Methods

* Cleaned up flags defined for View2D, and added some for defining the alignment of the view's data in the 'tot' rect (i.e. which quadrant(s) the view data is allowed to reside in).

* These flags are used in the new UI_view2d_totRect_set() function, which sets the new size of the 'tot' rect (i.e. the maximum viewable area). Currently, is only used for Outliner, but channel-lists also require this.

* Added API method to reset 'cur' (current viewing region) to 'default' viewing region - UI_view2d_curRect_reset(). Currently, 'keepzoom' is not respected. I'll check on whether this is needed when I recode UI_view2d_status_enforce(), which is badly in need of a cleanup.

13 years ago* silence a warning
Nathan Letwory [Thu, 4 Dec 2008 20:34:37 +0000 (20:34 +0000)]
* silence a warning

13 years ago* rename some view2d defines to be clearer and more in line with the rest of view2d...
Nathan Letwory [Thu, 4 Dec 2008 20:28:59 +0000 (20:28 +0000)]
* rename some view2d defines to be clearer and more in line with the rest of view2d defines.

13 years agoSmall fix for repeat-last-operator:
Ton Roosendaal [Thu, 4 Dec 2008 09:37:42 +0000 (09:37 +0000)]
Small fix for repeat-last-operator:

- Context in WM wasn't set for regions yet, done now. So repeat works on
  per-region ops too.
- Debug print was printing the wrong repeated op.
  (repeat-op could show menu naming the op to repeat)

13 years agoView2D: Scrollbars will now pan the view when MMB-dragged on
Joshua Leung [Thu, 4 Dec 2008 09:33:12 +0000 (09:33 +0000)]
View2D: Scrollbars will now pan the view when MMB-dragged on

13 years agoView2D: Scrollbar tweaks
Joshua Leung [Thu, 4 Dec 2008 05:37:55 +0000 (05:37 +0000)]
View2D: Scrollbar tweaks

* Added back vertical scale markings for vertical scrollbars. Currently untested (until IPO Editor can be put back in). Also, there was a special exception for the Sequencer, which will need to be checked when the time comes too.

* Fixed the display of frame numbers in scrollbars. Was caused by error in using an int, where a float was required (this is one place MSVC gives better warnings than GCC).

* Outliner horizontal scrollbar now displays a more useful range. The previous range was based on screen width, not width of content.

* Outliner horizontal scrollbar now draws with bevel-highlight line again. Was missed out in a previous commit.

* Added simple toggle Frames/Seconds operator to TimeLine to test if the View2D code is working right for this. This uses the same hotkey (TKEY) as it's counterpart (with a menu for input) did in previous incarnations of Blender.

13 years agoView2D: Units on Scrollers (XAxis only)
Joshua Leung [Thu, 4 Dec 2008 02:01:42 +0000 (02:01 +0000)]
View2D: Units on Scrollers (XAxis only)

Added back units on scrollbars for anim editors (i.e. Timeline). Vertical scrollbars have yet to be done, but there's no way to test yet.

Using markers and current frame indicator (and value) as guides, it is clear that there is still some inaccuracy with the drawing of the grid or the frames/markers are drawn wrong! Will investigate further.

13 years agoRNA:
Brecht Van Lommel [Thu, 4 Dec 2008 01:58:14 +0000 (01:58 +0000)]
* DNA_key_types.h: wrapped, and added back position
  and current value, now done.

13 years agoRNA
Brecht Van Lommel [Thu, 4 Dec 2008 00:07:47 +0000 (00:07 +0000)]
* Remove some unnecessary defining of struct types for pointers.
* Review of DNA_key_types.h and added Key for Mesh and Curve.

13 years agoTweaked tooltip box drawing so that ends of tooltips don't fall of the end of the box
Joshua Leung [Wed, 3 Dec 2008 23:21:01 +0000 (23:21 +0000)]
Tweaked tooltip box drawing so that ends of tooltips don't fall of the end of the box

13 years ago2.5 - compile fixes for Elubie's commit
Joshua Leung [Wed, 3 Dec 2008 22:35:38 +0000 (22:35 +0000)]
2.5 - compile fixes for Elubie's commit

13 years agoRNA
Andrea Weikert [Wed, 3 Dec 2008 21:18:10 +0000 (21:18 +0000)]
* rna for DNA_key_types.h, also linked to key member of Lattice, others need to be checked.

13 years agoForgot this file in my last commit.
Brecht Van Lommel [Wed, 3 Dec 2008 21:13:47 +0000 (21:13 +0000)]
Forgot this file in my last commit.

13 years ago* make function to map mouse into region coords
Nathan Letwory [Wed, 3 Dec 2008 20:57:23 +0000 (20:57 +0000)]
* make function to map mouse into region coords

13 years ago* check mouse coords in right space.
Nathan Letwory [Wed, 3 Dec 2008 20:45:26 +0000 (20:45 +0000)]
* check mouse coords in right space.

13 years agoRNA
Brecht Van Lommel [Wed, 3 Dec 2008 20:17:12 +0000 (20:17 +0000)]
* Added a function to define booleans negative, to turn negative
  properties into positive ones gettin rid of the no_ prefix, and
  also got rid of the use_ prefix for two booleans.
* Also made the function for enum bitflags separate, this is quite
  rare so don't need to bother with this in most cases.
* Removed svn:executable flags from some files.

13 years ago2.5
Ton Roosendaal [Wed, 3 Dec 2008 19:33:42 +0000 (19:33 +0000)]

Fun commit for test: the Repeat Last option.
Only the split-area Operator is now added on stack, so that's the only
one that works. Just split an area, and press F4 to repeat it anywhere.