Stefano Ceccherini
fd083d7eed
Use the private menu actions defines. Small cleanups.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12985 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 13:35:16 +00:00
Stephan Aßmus
442992bf26
fixed some pretty bad bugs that prevented menus from working (they now do): The BMessage* in AddShortcut is taken in responsibility by the BWindow, so we cannot directly use the message from BMenuItem, the be_app was locked in InitData but never unlocked, it fixes BMenus only working once, and who knows what else it fixes. A little cleanup with _BCmdKey usage, also note that it is inefficient to RemoveItem()s from a list in the destructor of any class using a BList as data container! Simply delete the items and be done with it. The BList destructor will take care of the rest and free its storage in one go.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 13:19:28 +00:00
Stephan Aßmus
4ece454391
since the bitmap will be filled with content, we can use 0 as flags for the BBitmap constructor, which prevents it from unnecessarily filling with white
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12981 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 13:14:57 +00:00
Stephan Aßmus
8768dcd876
BMenu installed all previously added items each time a new item was added
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12980 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 13:13:43 +00:00
Stephan Aßmus
0b5938e995
added a TODO comment, I forgot to mention that anything but B_TRUNCATE_END is untested or broken
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12978 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 13:12:43 +00:00
DarkWyrm
d506d0f84f
FBC fix
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12964 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-06 20:17:30 +00:00
Axel Dörfler
860b32520c
Almost rewrote BDeskbar. Fixed some bugs. Added some ToDo comments - the
...
functions will currently deadlock when called from within the Deskbar.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12962 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-06 14:23:06 +00:00
Axel Dörfler
e17b33e56b
The window was removing the app_server connection too early, and thus hang in Quit().
...
Removed the stopConnection() method.
Cleaned up header a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-05 18:57:55 +00:00
Axel Dörfler
a55bbe35a4
Fixed a warning.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12955 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-04 15:31:26 +00:00
Stephan Aßmus
c10a3393e2
huge BSlider cleanup, it doesn't use an offscreen bitmap anymore by default (compile time switch), updated drawing for Haiku features and disabled look, work in progress
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12948 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 19:57:34 +00:00
Stephan Aßmus
0c3344f4a1
no Invalidate in BControl::SetValue, I figure more controls need to be updated for this change
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 19:55:49 +00:00
Stephan Aßmus
743a147353
better ResizeToPreferred implementation
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 19:51:34 +00:00
Stephan Aßmus
59345e264f
huge cleanup, support for SetSizeLimits, support for truncating strings, numerous decorator bug fixes, Layer does not draw when view color is B_TRANSPARENT_COLOR, cleaner dispatching of mouse events to the WinBorder in RootLayer, commented the char map selection in the font server, as it seems glyph lookup by unicode index works much better with the default map
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 19:50:30 +00:00
Stefano Ceccherini
45ca1c948c
Simplified code for BView::ClipToPicture() a lot (both server side and client side). Regions passed with that method should take the place of regions passed with BView::ConstrainClippingRegion(). Note that the needed server support hasn't yet been implemented.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12939 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 14:20:10 +00:00
Stefano Ceccherini
b9b38bc7b2
Fixed build with debug enabled. Renamed a static variable.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 14:15:33 +00:00
Stefano Ceccherini
1c49767038
RegionSupport accepts, as parameters, references to BRegions (consts when possible) instead of pointers. Note: this is not a functional change
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12936 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 08:33:49 +00:00
Stefano Ceccherini
62d5101291
Converted ScrollBar.cpp to our style guide (more or less),
...
Renamed the private BScrollBarPrivateData class to be an internal BScrollBar's class (so it doesn't clobber the global namespace).
Added a ToDO item. Not a functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-31 12:57:51 +00:00
Stefano Ceccherini
26ad9841a2
Menus don't flicker anymore, extended some ToDos, small cleanups. Implemented BMenu::IsItemVisible() as I think I'll need it soon, extended Bmenu::OverSubmenu() to be recursive, it's not used at the moment but should be.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12899 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-30 10:10:52 +00:00
Stefano Ceccherini
38b35d9caa
BBitmap now uses the correct (private) BWindow constructor. Partially implemented that constructor. Fixed another typo in BView, verified and removed some TODOs
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12884 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-29 06:32:16 +00:00
Stefano Ceccherini
7d8462aed5
Fixed bad typo
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12871 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-28 17:44:09 +00:00
Stefano Ceccherini
e29cd74b0d
Now BBitmap creates a BWindow in case it can accept views. This avoids a crash in the 'DragMe' sample app.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-28 17:41:24 +00:00
Stefano Ceccherini
b54a7c449e
Stolen Ingo's code and implemented bitmaps_support_space(). Now BBitmap::InitObject() uses that one instead of the private method. I was obviously wrong about bitmaps_support_space() and get_pixel_size_for().
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12868 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-28 16:57:37 +00:00
Stephan Aßmus
85b226041a
Added B_BITMAP_NO_SERVER_LINK to the BBitmap flags. It constructs a BBitmap without a server link, which consequently cannot be drawn by the app_server, but which is nevertheless very useful. It essentially does the same thing as RUN_WITHOUT_APP_SERVER. I also added a CleanUp() function and moved the cleanup code from InitObject() there. CleanUp() is now called in the destructor, which means that the app_server now knows when to free the server side bitmap.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12814 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-25 18:10:20 +00:00
Stefano Ceccherini
2753f0d240
Added code for multiword selection. Currently it's disabled because it doesn't work due to some bugs in app server
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12794 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-23 22:07:50 +00:00
Stefano Ceccherini
ee4e1e5076
We can make use of the widthbuffer now that BFont::GetEscapements() works correctly
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12793 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-23 21:11:47 +00:00
Stefano Ceccherini
6ef50d339e
asynchronous mouse tracking starts working. At least, selection does.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12792 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-23 21:06:35 +00:00
Stefano Ceccherini
58b78e471e
Convert mouse coordinates from screen to view, thus fixing GetMouse(). Menus at least open now, and textview works in synchronous mode
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12790 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-23 17:40:42 +00:00
Adi Oanca
24a075f4e4
Implemented SetMouseEventMask()
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12788 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-23 17:20:04 +00:00
Stefano Ceccherini
87ab5d5c6d
Now we delete the menu semaphore in the window's destructor
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12785 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-23 13:56:06 +00:00
Stefano Ceccherini
063446f455
Reverted that last change, as it was really a bad idea afterall (as Axel pointed out)
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12784 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-23 13:50:59 +00:00
Stefano Ceccherini
8b47fd8708
MenuWindow's look is now B_BORDERED_WINDOW_LOOK, so we can avoid drawing the border ourselves.
...
Now BMenu caches its windows instead of creating a new one every time. This last change could be reverted, though, as we could end up keeping around too many windows.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12782 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-23 10:02:17 +00:00
Axel Dörfler
3dc0510487
Added exports for stuff needed by Deskbar to compile. Nothing is implemented yet!
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12770 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-23 00:09:03 +00:00
DarkWyrm
423a41b8cd
BScrollBar now sets the internal BView scrollbar pointers
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12759 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-21 20:39:03 +00:00
Stephan Aßmus
38c5a7b7fa
Implemented StringWidth in ServerFont, updated ServerApp to use it, and removed a -1 from TextView in the char location calculation, which I didn't understand and without which the cursor location and related stuff now finally work.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12744 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 17:36:55 +00:00
Axel Dörfler
097d641852
Didn't know that BView::do_owner_check() also checks the lock - maybe
...
it should be renamed to do_owner_and_lock_check().
Removed looper locking again, since it's not needed, then. Thanks to
Adi for the hint.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12743 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 14:58:49 +00:00
Axel Dörfler
52005fdaff
Finally fixed Adi's repeatedly mentioned pet peeve: in AS_LAYER_GET_MOUSE_COORDS
...
communication, the port's reply port is no longer sent to the app_server (as it
knows where to reply to, anyway).
Also made sure the view's looper is locked while getting the coords - I guess
BPortLink doesn't like to be written to from two different threads :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-20 02:42:52 +00:00
Axel Dörfler
25500bdfd9
Fixed BWindow::UpdateIfNeeded() by moving the code from BView::GetMouse() over.
...
GetMouse() will now just call UpdateIfNeeded().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 17:20:36 +00:00
Axel Dörfler
d6fad1d006
Changes due to Adi's insight:
...
- there can only be one _UPDATE_ message at a time in the queue so we
can stop searching after we hit the first one
- mouse coordinates are always send in screen coordinates (unlike R5,
which means this is a compatibility problem), so we need to convert
them even for the current view.
Apps should now work with the old synchronous controls method (even
though their drawing updates look clumsy and are slow compared to
asynchronous controls for whatever reason).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12730 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 14:12:02 +00:00
Axel Dörfler
bcd8a1fad9
Converted Window.cpp to our coding style guide and (unfortunately) fixed a
...
myriad of small bugs here and there, as well as some very odd coding techniques:
- the "Minimize" property was not handled
- the "Minimize" property was not settable
- the property/scripting stuff was horrible, anyway
- there are more and better error codes than B_ERROR (could someone tell the
app_server guys? :))
- added some ToDo items here and there
- and much more I don't remember
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12723 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 20:53:21 +00:00
Axel Dörfler
3405fff2a9
Implemented private function BWindow::DequeueAll() which reads all pending
...
messages from the port.
BView::GetMouse() now calls this function if it was called from the window's
thread and thus blocking the message loop.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 16:54:56 +00:00
Axel Dörfler
25b0ec461d
Now, GetMouse() processes and removes all _UPDATE_ messages, not
...
just those before the first mouse message.
This should be more correct and look better.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 15:47:49 +00:00
Axel Dörfler
c66f958bb6
Corrected BView::GetMouse(), untested though:
...
- it returned on _UPDATE_ messages without a mouse position
- it no longer calls DispatchMessage() for everything anymore,
however, it will still call BWindow::DispatchMessage() directly
for _UPDATE_ messages
- it didn't care for B_MOUSE_DOWN messages
- it didn't unlock the queue in case it found a message.
(this message actually reflects the differences to r12683 of this
file, but the newer one r12705 was even more broken, but in other
ways)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 15:40:29 +00:00
Stephan Aßmus
c7694b4ac7
Make the dot a dynamic size and improve the rendering for anti-aliasing under Haiku. Confirmed to look good with different font sizes.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 12:18:11 +00:00
Stefano Ceccherini
91b84c7729
Some initial code for async mouse tracking. Just playing around actually.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 10:45:36 +00:00
DarkWyrm
d73474eee9
Removed an infinite recursion bug in StrokePolygon
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 10:01:52 +00:00
DarkWyrm
585fe26c42
Added OutlineListView to build and fixed an include problem
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 09:24:59 +00:00
Stefano Ceccherini
898289a3f1
Improved a bit BView::GetMouse(). Added more ToDOs
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12705 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 07:02:25 +00:00
Stefano Ceccherini
e3c6cec42e
Fixed a bad typo
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12700 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-17 15:53:17 +00:00
Stephan Aßmus
ad6b480400
Work in Progress. The server keeps the client window up to date on layer movement/resizing. This fixes quite a few problems and brings support for FrameMoved and Resized hooks. But implementing it this way has its own set of problem, most importantly: When a BView calles Window()->CurrentMessage() in its FrameMoved/Resized hooks, it will see something very different from what it would see in R5. This needs to be fixed, but I have not had a good idea how to do this other than faking the current message in BWindow, which I didn't look into.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 15:39:58 +00:00
Stephan Aßmus
a1c5fb3432
Added a note in GetEscapements
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 15:02:20 +00:00