Commit Graph
80 Commits
Author SHA1 Message Date
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
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
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 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 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 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
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 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
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 d557af5b96 Fixes to my fixes of BView::MakeFocus(), the previous focus BView needs to be unfocused of course so the derived classes implementation gets called. Simplified BWindow::setFocus(). BView calls FrameResized() and FrameMoved() if it has no parent, I don't know how R5 handles it, but I added a TODO...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 11:59:42 +00:00
Stefano Ceccherini 7bdfb0d996 Added handler for _MENUS_DONE_
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-07 13:24:25 +00:00
Stephan Aßmus fc72699071 added some safety checks, cosmetic changes - please note that it is safe to call delete with a NULL pointer, unlike free(), so please don't clutter the code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 21:54:44 +00:00
Stephan Aßmus 1596a167c0 work around for layers not being moved that have not yet been added to the tree. See WinBorder::MoveTo for the explaination. The same problem should be at other places and most likely for normal views as well. This fixes BWindow::MoveXX() when it is not yet Show()n
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12500 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-28 23:56:40 +00:00
Stephan Aßmus 9715a3e1bf fixed BWindow::MoveXX(), BWindow::ResizeXX() and BView::ConvertToScreen()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-28 12:31:25 +00:00
Stephan Aßmus 3505574164 Added some TODO comments in Window.cpp, improved coordinate conversion in View.cpp. I'm not sure if this really works correctly, I need to write more tests. The scrolling test actually does more of what it is supposed to. At least the scrolling properly follows the mouse now. Missing are the movement of child views, the rebuilding of clipping, and I think that the scrolling needs to be synced to update requests having been fullfilled, or else some parts of the View will be CopyBits()ed which have not been drawn after having been scrolled into view by previous calls to ScrollBy(). Any insights appreciated.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12485 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-27 23:27:37 +00:00
Stephan Aßmus 28930a1240 small changes and fixes here and there
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12480 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-27 17:25:29 +00:00
Adi Oanca 6141cc1d5a Adjusted SetFeel() to current server implementation
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-21 18:59:14 +00:00
Adi Oanca e86740b699 Forward message to the handler set inside task_looper() no to fFocus
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 21:17:07 +00:00
Adi Oanca 94b849e1e2 No more B_MESSAGE_NOT_UNDERSTOOD on B_UNMAPPED_KEY_DOWN, B_UNMAPPED_KEY_UP, B_MODIFIERS_CHANGED events
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 18:05:54 +00:00
Adi Oanca be9241bf17 Added server support for Workspaces() and SetWorkspaces()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-10 18:56:02 +00:00
Adi Oanca 9f7e77bd63 Forgot a warning message
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 16:39:18 +00:00
Adi Oanca 52bd978684 Send only one AS_BEGIN/END_UPDATE message, not for every view
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 16:36:34 +00:00
Michael Lotz 3c46b74895 Remove debug leftover.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 21:29:55 +00:00
Michael Lotz cd970020cb Implement the BWindow::task_loop again. I know that this is code duplication, but look at
the TODO item for an explanation. We could do this as a hack in Looper.cpp though.
Also implement the determine_target function (incomplete).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 21:08:38 +00:00
Adi Oanca 27e3da2fac BWindow's frame events hooks work now. Frame gets updated on window move/resize.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 12:16:31 +00:00
Michael Lotz ed16bb7885 Fix KeyDown/KeyUp calls so that we don't always get numBytes = 0.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 02:07:02 +00:00
Adi Oanca 642d7ca95e Implemented BView::SetEventMask()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-21 20:26:44 +00:00
Adi Oanca 494d1b2a5a This fixes a problem with window's contents not being redrawn after a Show(), Hide and Show() again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11876 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 17:22:23 +00:00
Axel Dörfler f51f1dda88 Fixed some weird includes (no need or even support to specify "posix" as part of the include path).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11575 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-05 13:37:13 +00:00
Adi Oanca 7b76dd8073 mouse & keyboard messages now use the full power of application_kit
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-07 00:32:32 +00:00
Adi Oanca 79c8040e93 BView::MouseUp/KeyDown/KeyUp() hook methods are called for the BView for which the action takes place
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-03 22:46:58 +00:00
Adi Oanca 0e835651a5 BView::MouseDown() finally gets called
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-03 21:41:09 +00:00
Adi Oanca 6e8a11dda4 Keyboard messages are dispached to BWindow's handler if no focus view
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 17:58:09 +00:00
DarkWyrm e09fd76fe6 Added some changes for the new mouse wheel support
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9813 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-06 19:45:49 +00:00
DarkWyrm f9ed3ba7d5 Fixed a stupid mistake in the message to create a window
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8619 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-22 00:10:44 +00:00
DarkWyrm 38e110b124 Client-server messaging fixes
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-08 22:35:25 +00:00
haydentech f073f5d156 Fix 2 instances of mismatched locking
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-02 21:07:55 +00:00
DarkWyrm 3ceb31b96a Pahtz's changes from PortLink/BSession/PortMessage/PortQueue to BPortLink
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8519 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-07-30 15:15:27 +00:00
Stefano Ceccherini 26b5401027 Added implementation of _set_menu_sem_() to Window.cpp (should it go to a different place ?), thus fixing the build (at least here, I hope I didn't forget anything else).
Thanks to Bill Hayden for reporting and sorry again for the trouble.
Changed a comment in PopUpMenu.cpp


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-07-14 07:41:47 +00:00
Adi Oanca 7c680a3569 Implemented a method for the update process. Rearanged some code.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-07-05 20:39:03 +00:00
Axel Dörfler 71786a380c Added missing private AddShortcut variant.
Minor style update.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8194 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-06-27 21:32:52 +00:00
Adi Oanca 5b7dc94cde chnaged a mesage code
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-06-19 13:09:08 +00:00
Adi Oanca 5929c56ed0 ::MoveBy() fixed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8054 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-06-18 18:10:07 +00:00
Adi Oanca 1889be2a4d hidden state was wrongly reported
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8040 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-06-18 11:53:44 +00:00
Adi Oanca a3c6cfb7b7 Changed internal protocol. Ha ha. Just deleted a line. :-)))
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8034 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-06-17 14:41:15 +00:00
Adi Oanca f23d8d6216 Major code cleanup
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-06-16 06:45:13 +00:00
Adi Oanca d7113e23eb modified Resize methods
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-05-16 19:07:12 +00:00
Adi Oanca 7a71a81c84 modified the way top_view sends its data to app_server. It now send _all_ is data
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-04-03 14:57:39 +00:00
Adi Oanca a7d9589ff2 * Modified a little the protocol for AS_LAYER_CREATE_ROOT message. Replaced PortLink with BSession. Was
necessary!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7078 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-28 14:49:12 +00:00