Commit Graph
546 Commits
Author SHA1 Message Date
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