Commit Graph

2245 Commits

Author SHA1 Message Date
35f0149bb9 2.5
Small context bug when switching screens, Context didn't get updated
well. (solves crash in windows, on exit full screen file browser)
2009-01-06 19:49:45 +00:00
02003021a6 2.5
Made ED_screen api calls:
- ED_screen_full_newspace()
- ED_screen_full_prevspace()

Which now gets called by F1 operator, to move to 
full-screen-sized browser. For testing fun its default 
now. Might become user setting. Also have to check
on opening a temp window for this (and for render).
2009-01-06 18:52:18 +00:00
1c933cdb78 2.5
Cleaned area prevspace, and made exported API for it.
Also added operator-free on 'cancel' in filewindow.
2009-01-06 18:14:37 +00:00
b1cb844e05 2.5 - Start of filebrowser.
- basic drawing of list and thumbnail view (switchable through 'favourits' icon in header)
- selection of files and directories (bookmarks) works with the RMB (right mouse button)
- load operator for files still unstable (no check for correct file type) and incomplete. (WM_operator_free missing)
immediate TODOS:
- fix load file operator
- finish drawing of buttons in header
- drawing of detailed list with all file info.
- finish selection and execute operators (LMB and MMB execute)
later todos:
- parent dir
- keymap for all the shortcuts
- append/link and databrowse
- ...
2009-01-06 14:42:54 +00:00
3aae2de773 2.5
Cleanup:
- Makefile was using confused link order, now all intern and
  and extern libs are put after blender and editor libs
- Old stubs.c in editors/screen removed. The leftover python 
  stubs calls were moved to python module.
2009-01-05 17:20:40 +00:00
Nathan Letwory
6dedaf2dc2 2.5
Fix linking for msvc.
2009-01-05 16:54:28 +00:00
df6caaed1e 2.5
Small cleanup in region-based cursor handling. 
- callback was in spacetype, now in regiontype
- made screen listener catch ND_MODE notifier and 
  call the active region cursor callback, if it's there.
2009-01-04 19:17:34 +00:00
Nathan Letwory
9e7643aa7c 2.5 / Cleanup
- remove Verse support. This will be brought back in The Future (probably jiri + me)
  This means 5k lines less in blenkernel.
- fix two small errors for global cleanup, now compiles properly with FFMPEG enabled too.
2009-01-04 18:16:34 +00:00
3aeb63cad2 2.5
WM: added area-listener, which can be used to tag refreshes for
either the drawing call, or use the new ED_area_tag_refresh() 
function which will automatically call, after all notifiers
were handled, an the spacetype->refresh() you provided.

Added for Joshua, after reviewing Action/Dopesheet requirements.

Joshua: I've made two dummy functions in space_action.c:
- action_listener()
- action_refresh()

Wich now does a printf on activating a new object.
2009-01-04 17:45:54 +00:00
f7cb86df3a 2.5
Think global, act local!

The old favorite G.scene gone! Man... that took almost 2 days.
Also removed G.curscreen and G.edbo.

Not everything could get solved; here's some notes.
- modifiers now store current scene in ModifierData. This is not
  meant for permanent, but it can probably stick there until we
  cleaned the anim system and depsgraph to cope better with
  timing issues.
- Game engine G.scene should become an argument for staring it.
  Didn't solve this yet.
- Texture nodes should get scene cfra, but the current implementation
  is too tightly wrapped to do it easily.
2009-01-04 14:14:06 +00:00
af2304f3cb 2.5
********
- added clear location/rotation/scale/origin
	- each action is a seperate operator
	- Drawing is delayed as the tag_region_redraw does not seem to have an effect perhaps a transformation notifier is needed
	- for the view to update just do some transformation, like press G

 - changed the shortcut key for area rip to alt-ctrl-r so it dosn't conflict with clear rotation
2009-01-02 03:16:38 +00:00
a1961436f5 2.5
- Made scrollwheel behave uniform for zooming. It uses the UserDef
  to map what's in our out. Use keymap entries WHEELINMOUSE and
  WHEELOUTMOUSE to trigger this. Also removed the feature to store
  in event->val the direction, it was conflicting with KM_ANY.

- Added more default poll callbacks, use for generic ops things
  like ED_operator_object_active.
2009-01-01 14:57:04 +00:00
e9a3b4f85d 2.5
- Edit mode Mesh undo/redo back
  (undo for editmodes needed recode, todo for curve/lattice/etc)
- Added border select for edit mesh
- Added Akey (de)select all for edit mesh
- Added notifiers for mode changes.

This is also the first trial to dynamically add/remove
keymap handlers, based on modes. For that reason the Object
keymap was split in 2, modal and non-modal. On TABkey, the
view3d listener removes and adds maps.

The view3d keymap still handles generic mouse/border selection.
Internally it will verify modes.

The modes are not  re-implemented still... have to move this
to scene context.
2009-01-01 13:15:35 +00:00
471fc09479 2.5
My last one for 2008: global undo/redo back :)
Happy 2009 all!
2008-12-31 18:52:15 +00:00
c9b60a7b64 2.5
So, editmode mesh is back! :)
At the moment only TABkey works and mouse select, 1 vertex at a
time. More will follow of course.

Note for the devs:
- G.editMesh has been removed, be careful with old code.
- EditMesh now is property of Mesh itself
  Although it means unlimited editmodes, for migration purposes we
  better stick to 1 "obedit" per scene, which is in Context too
- G.obedit will get removed soon, so use CTX_data_edit_object(C)
  Or if you can't, just scene->obedit for now
- Also removed the CTX_data_edit_mesh(), this has no meaning 
  anymore. EditMesh is not context senstitive anymore, only the
  edit-object for time being is.
- Martin: I've already tucked some EditMesh pointer in T and
  removed all G.editMesh there.
2008-12-31 17:11:42 +00:00
58c5fd7066 Added WITH_PYTHON as a cmake option 2008-12-31 05:20:35 +00:00
750bb40de3 2.5 Outliner - Mouse Clicks work again
A typo in the outliner_active poll() callback meant that the events were being skipped.
2008-12-28 22:26:02 +00:00
149651b2f2 2.5
Quick bugfix: notifiers was reading NULL pointer after a file read.
2008-12-28 14:41:33 +00:00
f0f451fc16 2.5
Notifier system upgrade, based on Brecht's doc.
Implementation notes:
http://wiki.blender.org/index.php/BlenderDev/Blender2.5/DataNotifiers#Implementation

In short: let's try to strictly communicate in a notifier what happened.
The listeners then can act themselves. It also means that a frame-changed
notifier doesn't send out redraws, the editors themselves can decide.
2008-12-27 16:09:56 +00:00
86886cbc55 2.5 - Action Editor
* Started porting back keyframe editing tools for the Action Editor/Dopesheet. Currently, only Snap (Shift-S) and Mirror (Shift-M) are functional.

* Added keyframe-editing API method for ensuring that all IPO-curves are left in a valid state after modifiying the values of their keyframes.

* Added operator-register flags for most of the operators. Only mouse-select doesn't have it for now (as there's not much useful info stored, and no exec callback).
2008-12-27 11:44:00 +00:00
a2369a5e01 run python when starting blender like 2.4x does (was start/stopping python for each script before)
This way python can call the operator to run other scripts
eg...
 bpyoperator.SCRIPT_OT_run_pyfile(filename = "myop.py")
2008-12-27 04:55:45 +00:00
da078552d4 2.5
- Added 3d cursor operator (no exec, waiting for vector property!)
- Added default editor callbacks, for the poll() function.

Example:

   ot->poll= ED_operator_view3d_active;

I'll add later more, per module, such as OBJECT_active, which
can be called without WM active
2008-12-26 19:07:31 +00:00
bf956bb475 2.5
Timers: added extra 'event type' argument to call to add a timer:
WM_event_add_window_timer(win, event_type, interval)

This way other timer systems don't generate overhead on the queues.
(button timers were creating unused animation-playback operators)
2008-12-26 13:29:47 +00:00
2335092456 UI: Panels
* API and usage is basically the same still.
* Panels were moved to region level. I first thought of keeping them at area
  level, but having them at region level it's simpler to handle events and do
  drawing, and also to integrate with view2d. They can still become area level
  overlapping regions, if we make a floating (or docked) region that can
  contain panels.
* Added back a few panels from the scene buttons for testing.

Issues still:
* The view2d handling and alignment refresh of panels is not correct yet in the
  buttons window. 
* I did not yet bring back the block handlers system. It was basically a system
  that stored which panel was open and where the events for that panel would go.
  Just a few functions, but not sure how it fits in 2.5.
* There was a case where dragging panels would not properly remove the window
  level handler, but could not redo anymore even though I don't think I fixed
  it.
* Some text in the panels goes past the end of the button, that is due to the
  checkmark button drawing, not related to this commit.

Other UI code changes:
* Renamed interface.h to interface_intern.h for consistency.
* Fixed some issues with freeing of blocks when they changed due to context.
* uiDrawBlock now takes a context pointer (mostly for block drawextra).
2008-12-26 13:11:04 +00:00
5006875f53 2.5
- fix Makefile for space_script
- renamed operators for modules i maintain. (stripped ED_)
2008-12-26 11:11:21 +00:00
Nathan Letwory
486de068b2 2.5 - node editor
Commit of WIP code (what code isn't wip, these days ;)
- only drawing code as basis to work further from (and have less conflicts between different systems I work on)
2008-12-24 10:33:10 +00:00
Nathan Letwory
521fe6739a 2.5 / SCons
New priorities for most libs, at least core. This is still for Blender proper, BGE and such still to come.
2008-12-23 21:20:34 +00:00
Nathan Letwory
eb186d18dc 2.5 / SCons
Blender builds and links on Linux. For now without BGE and its player, 
but that will come. Priorities are still a mess, so expect more commits 
soon.
2008-12-23 20:13:31 +00:00
Nathan Letwory
93d9e7749d 2.5 / SCons
I did a very drastic cleanup for the different libgroups, there's now only a few left. It compiled with scons/msvc, will be testing in a bit on linux, too.
If you get any problems, please reply to this commit message on the taskforce ML.
2008-12-23 16:07:24 +00:00
67888ee34b 2.5 Action Editor Bugfix - Select keys now works
It is now possible to select individual keyframes again in the Action Editor.

* Temporarily disabled markers keymap in Action Editor, as it was stealing all the events. Waiting for solution from Ton...
* Fixed a crash and wrong coordinate conversion errors
2008-12-23 11:42:14 +00:00
76c035bd11 2.5: Data Context
* Worked out data context implementation more, now with initial context
  callbacks implemented for the screen and 3d view.
* For collections, switch from iterators to simpler ListBase. Though that still
  means it uses LinkData* rather than the actual Object* for example, since
  those can only be part of one list. So I added a macro as well to make
  iteration easier when possible.

CTX_DATA_BEGIN(C, Object*, ob, selected_objects) {
	printf("object name: %s\n", ob->id.name);
}
CTX_DATA_END;
2008-12-23 02:07:13 +00:00
cc9d3786f8 2.5: fix a crash switching to space types with old space data. 2008-12-23 01:08:02 +00:00
9e38e6aeb0 2.5
Better implementation of own window timers, not using ghost.
That makes blender's WM nice in control, and gives callers
of timers the opportunitie to evaluate time passed since
previous step. This system also only generates one timer 
event per main loop (events - handlers - notifiers - draw)

Small fix: allow keymap modifier to give KM_ANY to ignore
modifier keys, this to have TIMER keymap work.
2008-12-22 12:57:53 +00:00
bac4d10174 2.5
Small area/space api fix: space->new() callbacks now require
Context pointer. Too many cases you want to initialize stuff...

Also: added dummy draw function for NLA channel region, was
too ugly.
2008-12-22 10:09:56 +00:00
42def9a351 2.5
Cleanup

- for portablity we can keep the old ugly defines for retrieving
  active object, cfra and so on. But, they will use 'scene' not
  G.scene.
- fixed code that uses those defines.
- some unused variables/functions removed
2008-12-22 09:43:29 +00:00
48a93c3ea6 2.5 - Bugfix for interactive slider in timeline not correctly updating view. Also, added note in playback code that it needs to use preview-range settings not global frame range (I'm leaving this as-is for now, since it's still likely to change). 2008-12-21 23:39:52 +00:00
f1e0cf36f8 2.5
Animated screen! (unfinished, now only draws, no animation code yet).
Fun though to see it all work. :)

NOTE: Mac ghost has timer bug, the GHOST_ProcessEvents() doesnt wake
up for timers.

NOTE2: Added while loop in wm_window_process_events() to force Ghost
giving all events to Blender. Timers otherwise don't accumulate...
might be needed to fix in ghost too.

I tend to think to code own timer, this ghost stuff is totally different
per platform.
2008-12-21 19:58:25 +00:00
4bb20689c5 2.5
Added 'header print' feature back.

ED_area_headerprint(ScrArea *sa, const char *str);

Give it a NULL string to disable the feature.
On each call it tags the header for redraw.
2008-12-21 17:18:36 +00:00
eb8e220f26 2.5
- Added default Circle 'gesture' operator callbacks.
  As test, added in view3d window as Ckey, paint over object centers.
- Fixed notifier for gesture, to only cause redraws in own region.
2008-12-21 16:24:19 +00:00
841f376a1c 2.5
- View3D: added ALT+B clipping operator. Note this needs a call to
  the new function view3d_operator_needs_opengl(C) to ensure you 
  can use opengl functions. Event handling by default doesn't set
  opengl per subwindow, it's also forbidden to draw then!

  We might consider to tag operators that need opengl...

- Forgot to include creator.c fix for loading builtin vector font
2008-12-21 11:05:43 +00:00
df274a8b58 2.5 - Time operations to Animation Module
Moved time_ops.c contents to anim_ops.c, as the operators there are applicable to all other Animation Editors too. anim_ops.c will therefore contain all operators which will apply to all Animation Editors (i.e. change frame, frames/seconds display toggle, and soon Preview Range tools).

As such, added new global 'Animation' keymap like for View2D and Markers, which will ensure that these tools can be accessed in an uniform way across editors. 
Note that the order that these things are added is important, as the Animation ones will often 'steal' events from the View2D and Markers ones if placed before the others. To prevent that, we'd need to be able to set boundboxes here...
2008-12-21 08:02:24 +00:00
3bda5490f7 2.5: globals cleanup
* G.version removed, use BLENDER_VERSION
* G.order removed, ENDIAN_ORDER
* G.vd, G.sipo, G.buts, G.sima, .. removed.
* G.qual removed
* G.simulf removed (was unused in 2.4x)
* error() and some other unused stubs removed
2008-12-19 19:11:02 +00:00
62a03ea1b6 2.5
All of the view3d drawing code is now 'Context' free.
The idea is:

- ED_region_do_draw() sets and freezes drawing context
- regiontype draw() callback then can pass on other relevant 
  context stuff as function args.

Also cleaned up the WM opengl wrappers, to mimic opengl state;
no reason to give window pointer anymore.
2008-12-19 14:14:43 +00:00
63195b0179 2.5
Compile fix; MAXFLOAT is not defined uniformly on platforms.
Note for the coders: 

ED_types.h: has editor wide defines and structs
ED_util.h: has editor wide functions

Both includes also are containing old cruft to get things
to compile (and work), for later cleanup.
2008-12-19 12:48:30 +00:00
93cc4629e3 2.5: fix for crashes due to access to free'd memory in joining areas,
ripping areas and duplicating windows.
2008-12-18 19:41:36 +00:00
e8e903cd53 2.5
- WM subwindows now get freed on every ED_region_exit(). Was not
  a leak, but it's cleaner this way (and saves some kilobytes!).
- fixed debug print for operators (on blender -d) to print correct
  subwindow id.
2008-12-18 14:53:39 +00:00
ecc4e55b66 2.5
Context API

This adds the context API as described here. The main practical change
now is that C is not longer directly accessible but has to be accessed
through accessor functions. This basically adds the implementation of
the API and adaption of existing code with some minor changes. The next
task of course is to actually use this design to cleanup of bad level
calls and global access, in blenkernel, blenloader.

http://wiki.blender.org/index.php/BlenderDev/Blender2.5/Context

Error, Warning and Debug Info Reporting

This adds the error reporting API as described here. It should help
clean up error() calls in non-ui code, but eventually can become used
for gathering messages for a console window, and throwing exceptions
in python scripts when an error happens executing something.

http://wiki.blender.org/index.php/BlenderDev/Blender2.5/Reports
2008-12-18 02:56:48 +00:00
241dbe6e85 2.5: Fix crash moving area to fullscreen with tooltips. Happened
because C->window->screen and C->screen were different, now made
sure they are set at the same time.
2008-12-18 01:48:24 +00:00
7a5186c53f 2.5
Added operator for moving area to 'full screen'.
This is instable with tooltips on... fishy stuff then goes on,
which Brecht will first look at. :)
2008-12-17 19:40:19 +00:00
6634ed9a87 2.5
Added screen-set notifier. Works for arrow keys now. For those who
know the messy old code, admire the simple 2-function call method
now :) Only context setting is messy a bit, that'll be solved.

Also: removed redundant code, and move freeing window handlers up
one level; windows can keep their handlers while screen switches.
2008-12-17 17:33:45 +00:00