Commit Graph

4040 Commits

Author SHA1 Message Date
Stephan Aßmus
14f6345690 Several fixes to BMenuField layout calculations.
* The most important fix is that in BMenuField::_ValidateLayoutData(),
  divider was calculated, but then never used. If the menu field was not
  using the layout management, it should take the existing fDivider into
  account, but never did. This caused #2728.
* Added some tracing that helped me debug this.
* Fixed a bunch of layouting inconsistencies. It will also improve some
  unnecessary resizing of the menu bar.

Will test all of this some more. But in the test app I do have, the BMenuField
works more like in BeOS now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27508 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-14 19:01:54 +00:00
Stephan Aßmus
0095fe722a * Added a comment about the purpose of the code in AttachedToWindow().
* Improved FrameResized(). The "diff" is actually between the new location
  of the right side (Frame().right) and the location where it probably was
  in the parent before it is resized (fMenuField->Bounds().right - 2).
  Could be that this change is wrong, or at least, not yet correct. Will
  test on a different machine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27507 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-14 18:52:30 +00:00
Michael Lotz
fbf8d9c8dc Remove superfluous NULL check as menu being non-NULL is asserted at the top.
Fixes CID 1075.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27505 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-14 18:09:35 +00:00
Michael Lotz
f679edb6e4 Don't build the context menu before checking for NULL. Fixes CID 1077, though
the Tracker sources should really be cleaned up to use nothrow and/or exception
handling more consistently.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27504 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-14 17:51:13 +00:00
Stephan Aßmus
21bb6bd22b * Update header indentation.
* Added BScrollBar::SetOrientation().
* Improved _DrawArrowButton() to have a good visual result even when the
  scroll bar does not have the standard width or height.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27494 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-13 19:20:18 +00:00
Stephan Aßmus
65785bf7fd * Don't do anything in SetOrientation() if orientation is the same as the
current one.
* When calculating the thumb and bar frames, handle the case when the object
  doesn't have a label, but does have an update text.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27493 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-13 18:42:32 +00:00
Michael Lotz
c66c6997db CID 225: If the field size was <= 0 the field buffer wasn't allocated but still
used in the switch statement. Change that to continue early when a filed size of
<= 0 is encountered.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27488 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-13 17:31:13 +00:00
Michael Lotz
062952adf7 Initialize fFile to NULL.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27485 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-13 16:26:02 +00:00
Stephan Aßmus
ebcba0bec8 Free query in error code path. Fixes CID 927.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27477 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-13 14:04:13 +00:00
Fredrik Modeen
327a88fbc1 fixes pointed out by Axel, and style changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27463 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 18:29:16 +00:00
Fredrik Modeen
ee652e3aab reverted to 11769 and added (std::nothrow)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27452 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 14:06:56 +00:00
Stefano Ceccherini
1e8da5fd15 fAppName was leaked (CID 6). Also moved the initialization of fText to the end of the function, so that we avoid a BString::Adopt() call
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27447 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 10:26:05 +00:00
Stefano Ceccherini
746cac055a fixed buffer overrun, CID 649
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27446 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 10:10:13 +00:00
Stefano Ceccherini
2e2bff94a9 buttons could be used initialized if locking the looper failed (CID 1134)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27440 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 08:09:13 +00:00
Stefano Ceccherini
fc16834e55 buffer is an array, so use delete[]. CID 130
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 07:34:37 +00:00
Fredrik Modeen
c1d9a877a4 Fixed CID 1031: removed check _fDevice for NULL as we do new BList in constructor also removed temp var count as _fDevice->CountItems() should return 0 if empty
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27438 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 07:07:00 +00:00
Ryan Leavengood
4239ee5d66 Fixed CID 1290 and 1291: the temp BString is initialized with a new BString and then immediately replaced. A later null check ensures it is OK to initialize it to NULL.
Also fixed a GCC warning about comparison between signed and unsigned.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27434 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-12 06:21:34 +00:00
Axel Dörfler
43209917de * BDirectory::CreateDirectory() and CreateSymlink() now both use __gUmask to
correct the permission mask. This fixes bug #2670.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 12:25:05 +00:00
Stefano Ceccherini
c4f7df69a5 be_app could be NULL in BApplication's destructor, if the BApplication didn't initialize itself fully on construction. This fixes a crash when launching some already running application (i.e. print_server)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27413 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 12:02:33 +00:00
Michael Lotz
89dda28052 * Extend the usb_raw interface by alternate interface aware getters for
interfaces, endpoints and generic descriptors.
* Add getter for active interface index and simplify the count operation as
  it isn't misused to also get interface descriptors anymore.
* Refactor out some common code into helper functions.
* Adapt the USBKit to the changed/new interface.
* Change how alternate interfaces are exposed by USBKit by providing normal
  BUSBInterface objects for alternate interfaces that can easily be examined
  and used.
* Make BUSBInterface class aware of its alternate index and use the alternate
  aware usb_raw functionallity to build the endpoint and descriptor lists.
* Add ActiveAlternateIndex() to find out what alternate is currently active.
* Style cleanup of the USBKit classes, use std::nothrow everywhere and check
  all allocations. Simplify some code by removing optimization where the benefit
  is questionable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27409 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-10 21:52:32 +00:00
Stephan Aßmus
1b0471487a Added layout friendly constructor (untested).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27407 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-10 21:07:32 +00:00
Stephan Aßmus
7bf5abf425 Implemented BSize returning layout methods.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27406 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-10 20:34:10 +00:00
Stefano Ceccherini
40b71c1667 Use dynamic_cast before calling DeleteReplicant. This fixes bug #2712. I'm not sure why, though. Also call unload_add_on() as last operation (and yes, doing just that was not sufficient to fix the bug)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-10 11:34:56 +00:00
Stefano Ceccherini
f8a63d3a0b non 32 bit offscreen bitmaps were never cleared to white, due to the way they currently work: when the offscreen window is created, the current content of the bitmap is copied to the back buffer, and since the clearing came later, it was never copied to it. This fixes the problem with FlattenPictureTest not working correctly for colorspace different than RGB(A)32.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27389 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-09 13:28:30 +00:00
Stefano Ceccherini
6ee56a00e5 added a comment explaining why the implementation should be moved to the server
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27383 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-08 14:42:38 +00:00
Stephan Aßmus
19a1d666b3 Improve the Read-Only mounting suggestion for additional volumes.
* Following a suggestion by BGA, even non-boot Haiku volumes will get the
  read-only popup, although with less emphasis in the wording.
* BPartition does inherit the read-only flag from it's parent device when
  not yet mounted. This is now checked and at least prevents the read-only
  popup for volumes on read-only media. If I understood everything correctly,
  there is no easy way to tell if a file system supports writing.
* Updated indentation style in the header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27343 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-06 08:02:59 +00:00
Michael Pfeiffer
e53fa536eb Obviously the else block was missing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27342 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-06 07:37:12 +00:00
Rene Gollent
0f1d1fbe30 Temporarily disable this check in Invalidate() as requested by Stephan. This fixes the problem with redraws seen in FlattenPictureTest and a few other places.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27337 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-05 17:07:36 +00:00
Karsten Heimrich
b257bb85e7 * partly revert, we need to keep the initial width
dont overwrite with preferred, it needs to called explicit



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27332 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-04 23:44:04 +00:00
Karsten Heimrich
1bdc2a5203 * ResizeToPreferred und GetPreferredSize now behave more closely to R5
this fixes mostly all windows containing TextControls in ArtPaint and
  should fix also ticket #2543

  ArtPaint was calling the BTextControl ctor with an empty rect, followed
  by ResizeToPreferred, which made in the best case the TextInput visible
  but it did not take the label into account. Should help more R5 apps.

  Some more tests on R5 have shown that even if you pass an extra large
  width, a call to ResizeToPreferred will not respect the passed width.
  Also the _BTextInput_ seems to grow with the length of the passed label.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-04 22:05:40 +00:00
Michael Pfeiffer
20ab5edbe9 * In BeOS R5 BListItem::DrawItem frame.left is always 0 regardless of BListView origin or update rectangle. This fixes the horizontal scrolling bug in FlattenPictureTest application.
* When the list is scrolled horizontally ScrollToSelection() resets the origin x-coordinate to 0. When using the keyboard to move to the next or previous item this is not desired. Now the x-coordinate is not changed from its old value anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-04 19:57:31 +00:00
Stefano Ceccherini
3d2516cb5f implemented a client side (and very slow) version of BView::ClipToPicture. See bug #1397
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-04 13:59:41 +00:00
Stefano Ceccherini
b2bc136efc Changed spacing parameter type from int32 to float.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-04 11:58:01 +00:00
Stefano Ceccherini
c8ffdabb35 Fixed memcpy in case a smaller function table is provided. Improved readability of the SET_CLIPPING_RECT op block.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27315 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-04 08:22:00 +00:00
Karsten Heimrich
c9503698ae * take the precision into account while trying to add an optional character
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-03 12:53:01 +00:00
Stefano Ceccherini
9fb13d5822 the virtual version is const
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27297 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-03 11:23:15 +00:00
Karsten Heimrich
84d0e984f3 * of by one, while left points behind the chars to copy
right points to the first charater to start copy with



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27294 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-03 02:15:30 +00:00
Karsten Heimrich
9bee8e939b * use the new get function
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27292 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-03 00:33:41 +00:00
Karsten Heimrich
9b56aad8a0 * rewrote truncate_middle partly, it failed while trying to add an optional character
this was most noticable in Deskbar when opening DataTranslations in Expand App Mode



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-03 00:26:25 +00:00
Rene Gollent
7fb33cd07d I hate to add another special case, but with the way the BMenu* classes are designed, I see little in the way of alternatives. If we're a BMenuField's menu bar, then we should invoke the menu item regardless of where in the bar we click. This problem was visible in ticket #1877, where basically you could click only on the portion with text, because that was the size of the menu item, where the rest of the contained menu bar was considered dead space. Thus we now check if we're an instance of BMenuField's special menubar class, and if so we unconditionally select the item instead of a hit test. Fixes the aforementioned bug. If someone has a better approach, I'm all ears.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-01 19:33:50 +00:00
Karsten Heimrich
014016620f * Month and Day should be used from the passed date
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-01 13:16:14 +00:00
Karsten Heimrich
de13e4c0bd * implement julian day handling
* more get/ set functions, operators
* date until 1582 are handled in julian calendar
* date above 1582 are handled in gregorian calendar



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-01 13:11:29 +00:00
Karsten Heimrich
870f6b196f * implement AddMonths(...) and AddYears(...) functions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-31 15:37:37 +00:00
Michael Pfeiffer
4352fc9187 Bug fix: The calculated day of week is based on a week that starts on Sunday, in a calendar with Monday as week start this number has to be adjusted in case of a Sunday. It would be 0 but should be 7.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-30 18:15:44 +00:00
Michael Pfeiffer
f0932941dd Simplified initialization of week days for a month.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27243 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-30 16:13:05 +00:00
Karsten Heimrich
ee24e75d62 * man, i managed to mess up an one liner...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27240 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-30 13:06:52 +00:00
Karsten Heimrich
b1287e5da5 * the condition should not have change, thanks Stephan for pointing this out :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-30 13:03:58 +00:00
Karsten Heimrich
c1ed5d75d7 * special case only the end of the year
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-29 22:53:15 +00:00
Karsten Heimrich
b5e8c1341a * hrmm, March 2009 was week 0 ...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-29 19:46:02 +00:00
Karsten Heimrich
78092ae789 * move DateTime and CalendarView into shared
* adjust Time preflet to take that into account



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-29 19:26:58 +00:00
Karsten Heimrich
70bf426b8c * gcc4 build fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27227 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-28 19:32:18 +00:00
Karsten Heimrich
1678a1dd2c * if the given buffer size is to big, we will know we handle it in Attach
this should fix LinkSender usage like as in Stroke/ FillPolygon in BView



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27226 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-28 18:43:33 +00:00
Bruno G. Albuquerque
837057611d - Better be safe than sorry. Check MIME type and super type after
constructiuon. Thanks Rene for reminding me that BMimeType actually has a
  InitCheck() method. :)




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-28 17:38:52 +00:00
Stephan Aßmus
e2bc27448f Could have been part of r27221. Added BColorQuantizer to libshared.so. Should
be useful for the GIF Translator for example, maybe even for PNG.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-28 16:38:27 +00:00
Stephan Aßmus
740fe892ac Added a BColorQuantizer class to the "shared kit" based on a patch by David
Powel. The functionality was written by Jeff Prosise and Davide Pizzolato and
has been cleaned up and adopted to the Haiku coding style by David Powell and
myself. The class can perform a color quantization for generating the optimal
color index palette (with given maximum size) from a given RGBA image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-28 16:33:12 +00:00
Stefano Ceccherini
910c4a0106 the Link* api supports sending large messages through areas, thanks to Julun, and this TODO can be removed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-28 15:32:26 +00:00
Stephan Aßmus
3f2dd98c88 This fixes a bad feeling in my stomache:
* When mounting a non-BFS volume, suggest to the user to mount it read-only.
* Store the mount flags with each volume in the automounter settings, restore
  mount settings on next boot.
The second part is probably nice to have anyways und should prevent bad surprises,
the first part should be removed again when we have absolute confidence in all
our file system implementations as well as the kernel itself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27219 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-28 13:26:45 +00:00
Karsten Heimrich
4e61552ecd * first implementation of passing data via area to app_server
this makes printing of large images work, fixes task #1067



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-27 13:39:16 +00:00
Stephan Aßmus
0cafe2dfb9 * Fixed a race condition in BWindow::Show(). If it was the first time Show()
was called, the calling thread could be preempted, or simply be blocked on
  calling Lock() after running the window thread. The window thread in turn
  could be processing messages. In that case, fShowLevel would still have the
  wrong value. For example, MediaPlayer would call IsHidden() on one of it's
  views, which would then return true for this case. The result was that the
  video view was not hidden and a black rectangle was showing on top of the
  controls. This may also have caused other similar problems of course.
* fRunCalled was accessed without holding the lock.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-26 18:30:47 +00:00
Bruno G. Albuquerque
dcf3842b09 - Changed the well-known "Downloads" dir to be named "downloads" for
consistency.

All well-known directories in the home dir ("mail", "people", "config") are all
lowercase. The only exception was the "Downloads" one.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-25 16:58:47 +00:00
Fredrik Modeen
6ecf7db5fd Code cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-23 11:16:40 +00:00
Alexandre Deckner
07c052f765 - Simplified the logic in Draw, and other small fixes, thanks Karsten!
- Disabled_off picture wasn't archived/unarchived in one_state_mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 21:06:12 +00:00
Axel Dörfler
d262deae17 * The MIME type menu in the find panel now shows the MIME type icons, if any.
* Whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27146 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 12:30:00 +00:00
Axel Dörfler
d125d984a6 * IconMenuItem now falls back to the icon of the super type, if a MIME type
didn't have one.
* Whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 12:06:50 +00:00
Axel Dörfler
206c62f036 * Got rid of the "count" parameter and maintenance altogether - makes the code
much simpler.
* Simplified code to compute "start", ie. the index of the first MIME type menu
  item.
* Promote MIME types to the top-level if their super type don't add any
  attributes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 12:01:27 +00:00
Axel Dörfler
090da60b27 * Renamed CreateMimeMenu() to AddMimeMenu(), as it now also adds the menu to
its parent. The item count of the parent is now actually adjusted, so that
  additional entries are found.
* AddMimeMenu() now returns the menu of an already existing MIME type. Hence,
  we don't add the supertype menu twice anymore for each type, or don't add
  the second type at all when called again.
* Cleaned up naming, consistent use of "* " vs. " *".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 11:46:50 +00:00
Axel Dörfler
15a27c4d5b * Whitespace cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 11:22:52 +00:00
Bruno G. Albuquerque
e51479d912 - Creates the supertype menu when only supertype attributes are present.
- *NOW* it works.
 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 04:10:30 +00:00
Bruno G. Albuquerque
be8c87abf6 - Added a new CreateMimeMenu() method that creates the menu with attributes
for a specific MIME type. 
- Attribute menus now display a hierarchy with type and supertype attributes.

This looks a bit ugly but mostly because not all types and supertypes have icons and descriptions. Anyone up to do a MIME database cleanup? :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 03:57:57 +00:00
Alexandre Deckner
009aa366c6 - Changed Alt/Ctrl mode handling in Menu prefs, BMenu and Appearance
prefs as discussed in #2139 comments. This allow using Alt-Gr in either 
Ctrl or Alt mode. Appearance needs a serious style cleanup, comming next 
:)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 00:59:30 +00:00
Alexandre Deckner
5aa001b423 - Switch BListView selection modifiers as was done for Tracker in my previous commit. It now
even conforms to the bebook! BOutlineListView needs no special change. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27066 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-19 16:42:13 +00:00
Alexandre Deckner
7f1535c0d2 - BPictureButton didn't account for the disabled state. Fixes #2410
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27063 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-19 13:54:42 +00:00
Alexandre Deckner
c56a21ed62 - Made multi-selection modifier semantics consistent with most OS's out there. See #1255,
please shout if you've got anything against that :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-19 10:59:10 +00:00
Stephan Aßmus
1dfa5a7d2a size is actually icon_size, not data size, thanks Axel for pointing out!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27053 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 22:55:03 +00:00
Jérôme Duval
13b2ca0205 updated mesa to 7.0.4
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27047 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 20:19:01 +00:00
Stephan Aßmus
986677575d * Puh, there was quite a confusion with variable names here, Axel.
Don't we have this "blah shadows a parameter" warning enabled?
* data was leaked in the error code path when allocating the bitmaps
  failed.
* I've added a check if the provided buffer even has the right
  size before copying the B_CMAP8 bitmap data into it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27044 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 18:53:29 +00:00
Axel Dörfler
0d37df6412 * The old Be version of get_device_icon() now also supports retrieving the
vector icon in case B_GET_ICON is not supported by the device anymore.
  (This makes B_GET_ICON deprecated API.)
* Use B_BITMAP_NO_SERVER_LINK flag, as our bitmap is only used internally.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27036 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 11:50:08 +00:00
Axel Dörfler
d9b93b821a * The bitmap variant of get_device_icon() should now support getting all sizes
even if the icon is not available in that size (ie. is not a vector icon).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27034 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 11:38:53 +00:00
Stephan Aßmus
aac7507616 * r27001 left some parameter checks which need to be ommited
for vector icons. Simplified the checks and moved them to
  where the old B_CMAP8 icon is retrieved. The bitmap is allowed
  to have another color space, in which case the icon data is
  converted (code was already in place).
* Added a NOTE comment to how the new B_GET_VECTOR_ICON ioctl
  knows about the correct buffer size for the icon data.
I've tested setting the desktop icon size to something else than
16x16 or 32x32 and it works fine now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27032 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 11:05:15 +00:00
Axel Dörfler
8ce6cfc999 * Added two more public functions: get_named_icon().
* Implemented B_GET_ICON_NAME in get_device_icon().
* Comments welcome.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-17 14:32:33 +00:00
Maurice Kalinowski
0eddadb922 fix gcc4 build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27002 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-17 13:20:45 +00:00
Axel Dörfler
06ba3f0acb * Added two new ways to retrieve an icon from a device:
- B_GET_ICON_NAME: returns the name of an icon. This will then be read from
    a predefined location on disk (not yet implemented). This would also allow
    to add specifiers like "-boot", or "-fat|bfs|ntfs|...", and have special
    icons for those.
  - B_GET_VECTOR_ICON: retrieves the vector icon of a device, if any.
* get_device_icon(BBitmap*, ...) now supports other color spaces than B_CMAP8.
* Added get_device_icon(), BPartition::GetIcon(), and BVolume::GetIcon()
  variants that can also retrieve the icon data directly (like
  BNodeInfo::GetIcon()).
* Reenabled the previous BPartition::GetIcon(), based on a patch by
  Justin O'Dell - this fixes #1391.
* Tracker's MountMenu class now uses B_RGBA32 icons, instead of B_CMAP8.
* Added vector icon to scsi_disk, and scsi_cd. The former doesn't have any
  special removable icon, though.
* Header cleanup, added/updated license, whitespace cleanup.
* Marked deprecated/obsolete driver ioctls in Drivers.h.
* Removed OpenBeOS namespace in the headers I touched that still had them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-17 11:27:07 +00:00
Axel Dörfler
9ad1415ecb * Use addr_t instead of int32, since we're dealing with addresses here, and this
way it wouldn't work on 64 bit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-17 10:31:31 +00:00
David McPaul
ac847fc895 Don't call Reader methods with invalid cookies
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26986 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-16 02:24:19 +00:00
Michael Lotz
f75add6173 Obviously noone ever really used BFlattenable objects with our BMessage, as it
was pretty broken. It would store the address of the buffer in the message
instead of the actual data. Funnily, since it was completely stack based before,
it would have stored the address plus the actual data (minus 4 bytes) as that
did reside directly after the address on the stack and the original buffer
length was still used. This corrupted the data, but still "worked" for MDR
because it has fault tolerance, loosing only part of its flattened StringList.
This broke however when switching to a heap allocated buffer for large sizes,
as then the heap address plus some random heap data was added to the message
instead of the actual buffer. Sure interesting that nobody noticed that before...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26984 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-15 20:55:06 +00:00
Axel Dörfler
55585cfa0d * truncate_middle() could eat the whole string if it was as large as the
ellipsis. This was visible in missing window titles for short names like
  "bin".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-13 12:52:14 +00:00
Axel Dörfler
ae0606be74 * Added two more private InterfaceDefs functions: get_application_order(), and
get_window_order() will retrieve the application respectively window order
  on the selected workspace.
* Moved private BeOS compatible functions (as used by the Deskbar) into the
  private WindowInfo.h header.
* Whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26951 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-12 17:39:42 +00:00
Stephan Aßmus
3f953c833c Added clarifying comment for something that puzzled me at first.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-12 15:15:02 +00:00
Stephan Aßmus
8a0be4edeb * I misunderstood the previous of adding fPath.Path() to the message. It was
meant to be able to tell which monitor the message came from. So I added it
  back in. Since I used "path" already for the entry, I renamed the field to
  "watched_path". No code was using it yet, so this should be ok and the
  purpose more clear anyways.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-12 14:49:30 +00:00
Stephan Aßmus
2bf5ba0562 Minor style cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-12 14:43:46 +00:00
Stephan Aßmus
edc51252d3 * A few versions of BMessage::AddXXX and ReplaceXXX did not check the argument
passed to the function against NULL.
* Made BMessage::AddFlat() use an optionally heap allocated buffer versus always
  a stack allocated one.
* Small simplification in BMessage::AddMessage(), we can simply compare the
  buffer with the stack based buffer to know whether we need to free() it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26943 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-12 14:38:31 +00:00
Stephan Aßmus
afbd081a6f * TRACE macro no longer needs double parenthesis.
* The global BPathMonitor looper is now always used, no more optional looper
  and no more BApplication looper usage. This way we know how the looper behaves
  and PathHandler::Quit() can be synchronous. In the end, the bug I was
  observing was not caused by the previous asynchronous node monitor stopping,
  but this should be safer anyways. When BPathMonitor::StopWatching() returns,
  you have really stopped watching and not some time later.
* Introduced "FileEntry" which is an entry_ref plus node id. This is now used
  instead of the node_ref for the "watched files set". The whole point
  is to really be able to add the "path" field to the B_PATH_MONITOR message.
  Previously, the initial path that was passed to StartWatching() was added,
  regardless if the message was for an entry somewhere down the hierarchy when
  watching recursively. The downside of the new method is that it uses a lot
  more RAM per entry. Another option would be to store the node id of the parent
  directory and iterate the directory always when in need to construct the path.
* Watching a folder recursively now really adds all the existing subfolders
  as well as all the files if not watching for folders only. The tests for the
  old implementation only tested what happens when the watched folder was newly
  created and then subfolders were created. Those where already added by the
  code. Now it also adds the subfolders of folder that appear in a watched
  folder.
TODO: Remove folders and files recursively when they dissappear. More testing
for B_ENTRY_MOVED. Optimizations are possible when some information is
retrieved twice. I am also planning to add a way for the BPathMonitor user to
filter the automatically watched files/folders in B_WATCH_RECURSIVELY mode.

I grepped the entire Haiku tree for usage of BPathMonitor. Only net_server
and Mail were using it, but both in a way that is not affected by these
changes. Anyways, TextSearch works more reliable now, even for entries in
subfolders.

Feedback very welcome! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26936 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-11 20:02:59 +00:00
Axel Dörfler
872c3d3f6a * Fixed the broken nodeFlags semantics in BDirectory::Contains() (they are
flags, after all).
* This fixes the "Command-Tab" ie. switch to source/header command in Pe.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26932 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-11 18:16:33 +00:00
Axel Dörfler
8f38768e65 * Don't define DEBUG in public headers!!! Doing it this way will break the
build for others, namely those that also include <Debug.h>
* This fixes the remaining problems of building Pe under Haiku.
* Those files need a giant style cleanup... Fredrik, time to have a look at
  our style guide :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-11 16:45:26 +00:00
Karsten Heimrich
4b7da592ee * first steps towards a new printer api...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-10 23:26:38 +00:00
David McPaul
086dbe90c8 limit no of retries to prevent infinite loop
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26914 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-10 13:54:03 +00:00
Stephan Aßmus
5ef86fce1f * Rename the private structs to use the same scheme as for classes, which seems
to be the habbit now.
* Improve PathHandler::Quit() to delete the object in case the BMessenger was
  not valid or failed to send the Quit message. This should handle the corner
  case that the PathHandler's looper was already Quit(). There could still be
  a race condition, although I don't know if it affects local message targets
  in Haiku. I added a TODO note for that, but I believe it can be neglected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26877 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-08 14:22:00 +00:00
Stephan Aßmus
f72ed717b4 The previous loop to remove all the BHandlers in the destructor was really quite
inefficient. And while it did check if the handler was not NULL, it would have
resulted in an endless loop if it was. I think we can safely assume we have no
NULL BHandlers in that list though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-07 21:42:02 +00:00
Stephan Aßmus
f7c226f467 * StartWatching() now takes an optional BLooper pointer. This looper will
then be used for receiving node monitoring messages.
* Reenabled using be_app as default BLooper if the API user does not provide
  one. I think the problem that Stefano needed to work aroung in r23995 was
  actually caused by the incorrect locking (an never unlocking) of the looper
  before calling PathHandler::Quit().
->If I understand correctly, this code as supposed to work around the possible
  situation that the looper holding those PathHandlers may have already quit,
  leaving stale PathHandler pointers behind. But that case was not prevented
  by the old code anyways, since one would have had to access freed memory to
  even get the stale BLooper pointer. The real fix would be to store the
  BLooper pointer with each PathHandler so that the possible gone-ness of
  those loopers could be checked independent of accessing the PathHandler
  pointer. (The whole problem is that PathHandler adds itself to the BLooper
  and if the looper quits, it will free all its attached handlers.)
* Introduced a global fallback BLooper for the case that no BApplication is
  running, which resolves a TODO.

All this is yet untested, but should have a good chance of working.
(Famous last words...)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-06 16:56:24 +00:00
Karsten Heimrich
1a74e75248 * replace some whitespaces
* return error in case we could not get all values from JobConfig



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26822 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-05 20:40:49 +00:00