Commit Graph
100 Commits
Author SHA1 Message Date
Stephan Aßmus 2a74c55308 * when a vector icon was present, BAppFileInfo::GetIcon() would return an
error if the provided bitmap was B_CMAP8, now BIconUtils will convert the
  icon to B_CMAP8
-> this behaviour is a little inconsistent compared to what happens when
  reading icons from attributes, there, the CMAP8 icon is prefered in case
  such a bitmap is passed, even if a vector icon exists. I am not really
  sure which behaviour is better. For a consistent UI, maybe it is better
  to prefer the vector icon always. I've added a note to BAppFileInfo.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-02 16:54:34 +00:00
Stephan Aßmus 0064e64138 patch by Julun:
* fixed ticket #1500
	* big cleanup and removal of unused code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22411 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-02 14:54:15 +00:00
Stephan Aßmus 4d1c422802 * added a way for the ServerWindow message loop to determine the required type
of locking before processing the message (single/all window lock)
  -> in most message cases, I could comment out the unlocking/locking which
  switched to the different lock, because the required lock is now already held,
  this removes some race conditions which were commented in the code already
* EventDispatcher::SetDragMessage() didn't lock the object, this would have
  been bad if multiple windows tried to set a drag bitmap at once
* the Desktop object keeps track of mouse position and pressed buttons, so
  that it doesn't need to lock the EventDispatcher for sending fake mouse
  moves to windows on show/hide of windows (solves some cases of possible
  dead locks with the new locking strategy)
* the keyboard EventFilter switches the current workspace asynchrnously from
  the Desktop thread (another source of possible deadlocks)
* the "reader is trying to become writer" check in MultiLocker is only used
  in DEBUG mode now

As a summary: It would be nice if ServerWindow used a readlock for all messages
it processes itself, and forwards all messages for which it needs a write lock
to the Desktop thread. All cases where either the Desktop or the ServerWindow
mess with the EventDispatcher are possible sources of deadlocks. This is solved
right now by making sure that the lock is released before using the
EventDispatcher.

I have not observed any deadlocks while switching workspaces and launching
many apps anymore, neither crashes. But I have not tested extensively except
for in the test environment. That being said, I could reproduce the problems
on first try before in Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22410 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-02 14:09:11 +00:00
Stephan Aßmus 242eff3d7b * prepare optional package Vision (download at sourceforge has been updated
with HVIF icon too, thanks DeadYak!)
* enable optional packages in your UserBuildSetup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22389 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-30 17:24:57 +00:00
Stephan Aßmus 05bcaa5a60 * put more website icons under version control
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22383 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-30 09:49:01 +00:00
Stephan Aßmus 212ad3266b * all the icons in native Icon-O-Matic format (including named paths, styles and
shapes) which have so far been done for Haiku, the website and other apps


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-30 09:34:20 +00:00
Stephan Aßmus 86952603d8 * updated WonderBrush location to the new release
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-30 07:54:58 +00:00
Stephan Aßmus 2a88281a61 * check for possible division by zero (just had a crash with divide error
on another machine, don't know if this was really the cause, but it should
  be checked nevertheless I guess)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22373 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-29 14:06:19 +00:00
Stephan Aßmus 5b06c4ae51 * improvement to checkmark and submenu indicator layout and drawing (layout
takes menu margins into account, drawing is now fully scalable)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-29 13:00:24 +00:00
Stephan Aßmus a788be674b * some simplifications in the code, I'm not sure if it supported NULL texts as
the BeBook mentions it does
* make sure the view is invalidated on resize
* needs more fixes (for example GetPreferredSize() does not take everything
  into account)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-29 12:58:59 +00:00
Stephan Aßmus 917870d2ba * slight code style fix, but that file would need a complete cleanup to be
style compliant...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22369 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-29 12:55:19 +00:00
Stephan Aßmus ded80ae491 * very minor cosmetic change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-29 12:54:19 +00:00
Stephan Aßmus f691c77a30 * don't know which option to pass to fopen() in order to create a file if it
doesn't exist, so I just used a BFile instead... this should fix part of
  ticket #1423, if someone wants to look into the gateway retrieval
  (settings.cpp) to fix the other half of the bug, that would be great


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-29 07:22:18 +00:00
Stephan Aßmus c96bc8d3f1 * removed unnecessary whitespaces, small style cleanups
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-29 07:19:32 +00:00
Stephan Aßmus b1836934f8 * when selecting objects in the list view, the controls will adapt to the
object properties


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-29 06:46:29 +00:00
Stephan Aßmus 8abf0f5150 * the "auto numlock" option is now off by default, for all the notebook
users (this had irritated me myself when I first used DeskCalc on a notebook)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22273 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-22 08:41:16 +00:00
Stephan Aßmus 015a014aa7 * fixed quite a few selections bugs, most were caused by cyclic notifications,
and the mechanism to prevent them not working...
* could have fixed the "there are still listeners attached" bug (debugger drop)
  on exit, I have not seen it again, but I am not sure if it is really fixed
* introduced a way to ask the user, if changes should be saved and then
  pick up the line of thought after saving


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-21 15:21:38 +00:00
Stephan Aßmus c4ce9e7607 * the custom ScrollView supports B_NO_BORDER, B_PLAIN_BORDER and B_FANCY_BORDER
and each side of the border can be turned off or on individually
* -> cosmetic improvements


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-21 13:04:06 +00:00
Stephan Aßmus f10474fc0b * the main window is now using the min/max size from the layout system
* added Min/MaxSize() implementations to PropertyListView and ScrollView,
  which fixes the instable layout (upper list views shrinking towards the top
  whenever views are added/removed in the property list)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-21 08:40:00 +00:00
Stephan Aßmus 062aea5c40 patch by Julun:
* write the RTC settings (GMT versus Local time)
* small cleanups


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-19 07:12:08 +00:00
Stephan Aßmus 0fcc16e538 * some more cleanup and refactoring in EthernetSettingsView
* added Revert button
* added enabling/disabling of text controls according to Mode setting


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-17 17:50:06 +00:00
Stephan Aßmus 5406d829a8 a bit of cleanup
* Network can only be built for Haiku, so no package and no BeOS compatible
  declaration in Jamfile
* some style cleanup in EthernetSettingsView
* fixed EthernetSettingsView::AttachedToWindow(): fixed leaking of the
  initial message, fixed potential crashing bug when no device was present
  on the system


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-17 14:05:06 +00:00
Stephan Aßmus d12bc5d9e5 * I was a bit too ambitious, this file was not touched by Julun yet it appears
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22233 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-14 09:15:30 +00:00
Stephan Aßmus fd7c0c2ed7 patch by Julun:
* fixed more style issues
* fixed small memory leaks
* refactoring
+ some small changes by myself, added back Michael Berg and Andrew McCall as
  likely authors of most files which had no author information


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22232 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-14 09:04:03 +00:00
Stephan Aßmus c831635f1e * make sure that the menu bar is still aligned with the right
side if in fixed size mode in ResizeToPreferred, this fixes
  the menu bars going out of view bounds in a lot of apps using
  fixed size fields, like Screen



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-13 15:08:48 +00:00
Stephan Aßmus bbe8558522 * make absolutely sure there is no cyclic resizing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-13 15:04:38 +00:00
Stephan Aßmus 259233e466 * added NOTE on why having mouse coords in screen space until the very last
moment is so nice


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22228 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-13 15:02:29 +00:00
Stephan Aßmus cdb69c4a02 * take care of invalidating resized menufields on BeOS
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22227 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-13 11:49:38 +00:00
Stephan Aßmus 158001f57d * fractional rects need to be aligned if not drawing in subpixel precise mode,
by now, I feel there is too much code involved in this... I guess I should
  really move this to stuff to ViewLayer::ConvertToScreenForDrawing()...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-12 08:18:09 +00:00
Stephan Aßmus 42b3a11f19 patch by Julun:
* further cleanup of code to apply style guide
* removed now obsolete clock bitmaps
* some restructuring of the code
* adjusted layout of the time zone pane


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-12 06:08:42 +00:00
Stephan Aßmus 72c9d31ec4 * transmit correct type in BView::BeginRectTracking()
* put message codes for Begin/EndRectTracking() into giant switch... not
  actually implemented though


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-11 21:23:07 +00:00
Stephan Aßmus ef4159b382 * added icon, based on work by "Humdinger" and "genki"
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22207 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-09 14:26:48 +00:00
Stephan Aßmus 129302e4c1 * fixed two bugs related to #1445, on BeOS R5, BFS has a bug that prevents
attributes to be written under a certain name when they already exist under
  the same name but with a different type
* the code that did the saving to a temporary file, then copied the attributes
  of the original file, then clobbered the original file prevented saving the
  icon in the icon attribute reliably, disabled this code for now and added
  TODO how it should work better


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-08 18:25:06 +00:00
Stephan Aßmus 5725361ffe * some fixes to the GUI on BeOS, avoid an app_server bug when resizing the window
after creating the views, but before Show()
* make the MenuFields in the Style section follow left/right


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-08 18:21:20 +00:00
Stephan Aßmus 13310304ea * fixed Mail startup, it would not open a window because of an uninitialized
variable (#1459)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-08 15:15:32 +00:00
Stephan Aßmus 53d9356e96 * applied another large patch to cleanup and refactor code by Julun (aka HOST)
* Julun also fixed some font sensitivity issues
* Julun already replaced the bitmap clock with resizable clock rendering,
  I took this as a base and tried to make it visually pleasing



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-07 10:23:12 +00:00
Stephan Aßmus c4650bba52 * CopyEngine::Start() didn't return something at the end of the function
* CopyEngine::CopyFolder() forgot to GetName(name) before using "name" in
  strcmp()
* "delete" already checks for NULL


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-06 23:02:41 +00:00
Stephan Aßmus 1de41c158d * fixed tracker single click selection.
If I may say so, I find this code extremely messy and in desperate need for
refactoring. The bad news is that selection flickers now - the columns which
don't need to be drawn at all. I printed some debugging info in
BTextWidget::Draw() and it appears that for a single selection state change,
at least four invokations of BTextWidget::Draw() will result. Sometimes many
more. Since the code calculated the dirty rects wrongly in many places, it
appears that this bug might not have shown before. Like I said, the code is
a mess and there is not a single place for invalidating poses, so I am not
surprised why tons of invalidations arrive. :-/ Maybe I should make myself
more familiar with Tracker... or revert my text outline patch. :-P


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-06 10:40:47 +00:00
Stephan Aßmus 54a7f0923c * fExtraFlags was not maintained in various places, most importantly nowhere
in SetFamilyAndStyle(), this should fix stuff like IsFixed() not working


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-06 09:31:57 +00:00
Stephan Aßmus 2c5a88945e fix more glitches:
* invalidate the correct rect on WindowActivated() in case fDivider is not
  correclty maintained
* don't cut off part of the label in Draw() by constraining the clipping in
  case the placement of the label is a little different than intented


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-01 13:33:51 +00:00
Stephan Aßmus a431f44be8 * make the text view layouting more robust, draw the frame around the
text view, ignore the divider for this (application code could layout
  the textview itself, and fDivider might not be maintained)
* change Draw() and TextInput::MakeFocus() accordingly

this fixes the weird placement of text controls in Beam


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-01 12:51:59 +00:00
Stephan Aßmus 553024440b This fixes all the issues mentioned in #1207
* improved alignment of controls
* removed last separator from icon bar
* moved separator in sending mode so grouping of trash icon is like in
  reading mode
* adjust window size constraints according to icon bar width
* fixed follow modes of menufields when resizing window (even on BeOS,
  though a custom menu field is needed to take care of invalidation)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 23:10:41 +00:00
Stephan Aßmus 3a38a48561 * fixed size layout of BMenuBar on BMenuField in fixed size mode
(needs to account for the parts that the BMenuField draws, ie the shadow
  on the right)
* fixed follow mode of BMenuBar in fixed size mode (B_FOLLOW_LEFT_RIGHT)
* don't resize the BMenuField in fixed size mode (endless loop), this should
  be more robust anyways, since this endless loop would be triggered if an
  application tried to manually resize menuField->MenuBar() in auto resizing
  mode
* fixed calculation of the parts that need to be redrawn on resize


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22127 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 22:36:14 +00:00
Stephan Aßmus caacab3726 * small cleanup, added comment about out of memory condition
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 22:31:55 +00:00
Stephan Aßmus 7ebe0d01cf first part of a big cleanup of the Mail code
* separated window, app and context menu code
* got rid of all the global variables (which were accessed completely without
  locking, and the code with regards to the preference window sill needs
  fixing)
* extracted some defines and helper functions to MailSupport.cpp, though I later
  saw Utilities.cpp...
* got rid of the FONT_SIZE define which was used in some (but not all) controls
  to override the system font size
* worked in Header.cpp to get the controls layout font sensitive with correct
  alignment too, some problems remain when resizing the window


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 19:32:38 +00:00
Stephan Aßmus e749c485ed * this fixes the second part of #1426, unfortunately, the clipping checks
have become more expensive, so maybe it is better to do what I proposed
  in the ticket comments, and move the rounding of drawing command coordinates
  into ViewLayer::ConvertToTopForDrawing() instead of handling it in
  DrawingEngine and Painter


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 14:31:49 +00:00
Stephan Aßmus 561844529d * implement FillRect() with B_OP_INVERT using hardware acceleration like
FillRegion() is already doing (untested)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 14:23:06 +00:00
Stephan Aßmus 53fca955e6 * I confirmed that on BeOS, BView::Invalidate(BRect) rounds the rect to integer
coords in this way. BRegion does a different rounding, also compatible
  with BeOS. I added an explaination. This fixes one _part_ of #1426, which is
  that Sudoku doesn't invalidate more area than intended (or at least it works
  as it does on BeOS now). The second part of the bug though is that the server
  has been preventing the drawing of lines and rects in a certain way, in another
  words, the part of the bug I fixed should not have been a problem in the first
  place if the clipping would have worked correctly. I believe the problem shows
  when the drawing commands contain fractional offsets. The rounding happens in
  the server, but maybe too late (after comparing with the clipping region). It
  could also be a bug in our BRegion implementation, I need to check my new
  implementation behaves exactly like BeOS in the Intersects() and Contains()
  methods for fractional coordinates parameters. Anyways, at least the visual
  problems are gone.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 12:58:20 +00:00
Stephan Aßmus 227fb2b11c * use Ryan's new BAboutWindow class (also removed the hint that this app
originally was a birthday present for Ingo... hope he is Ok with that)
* fixed ticket #1424, now it uses three empty buttons for new pads
* cloned pads are now opened at an offset, otherwise one wouldn't have any
  visual feedback that something happened with a cloned pad on top of the
  original


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22055 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-25 17:34:43 +00:00
Stephan Aßmus 5c34aef797 changed the meaning of the "icon view label background" Tracker setting:
* it is replaced by a "icon view label outline" feature that renders a black
  or white outline around the text of a label under an icon. This can be used
  for background images that have a lot of contrast and is visually more
  pleasing (IMHO) than the text box in the workspace color (but the outline
  could of course still be improved as well)
  the outline or "false bold width" feature is a new BFont feature in Haiku
* Tracker appeared to have a disabled feature to install default background
  images, I enabled this feature and rewrote it a bit to use our big logo
  from the artwork folder, the placement is for 800x600, so not optimal for
  larger desktops, but at least it is shown by default on new installations
  or rather "fresh" images
* changed the way the dotted underline is rendered under links, accidentally,
  this fixes the bug that it was not dotted at all since a while, which is
  a bug in app_server or BView not tracking the need to update the drawing
  pattern in certain situations (this bug needs to be fixed too of course)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22040 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-22 15:01:38 +00:00
Stephan Aßmus f148f628da * resizing scrolled views should have definitely been broken
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22039 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-22 14:53:24 +00:00
Stephan Aßmus 79d6486d1d * use a darker text color for disabled yet selected looking menu items
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22038 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-22 14:52:31 +00:00
Stephan Aßmus 307d439902 * reenabled implementation of "false bold width" font feature
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22037 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-22 14:15:07 +00:00
Stephan Aßmus c5c3b078e7 * clarified comment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22036 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-22 14:14:30 +00:00
Stephan Aßmus 22f5a4e492 * fixed broken invalidation on resizing the status view
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-20 22:23:18 +00:00
Stephan Aßmus e583bfc206 patch by Andre Garzia:
* reading/writing interface configuration data is now working properly
* at boot, net_server will overwrite the configuration with settings retrieved
  via DHCP, though
* refactoring/renaming

changes by myself:
* fixed warnings and cleaned up in Settings::ReadConfiguration(), when the
  nameservers are parsed
* fixed warning in EthernetSettingsView::_SaveAdaptersConfiguration(), changed
  the loop to do without "isOpen", I think it was broken in two ways before:
  - it would use the fp pointer after closing the file (isOpen was not
  maintained), and if that would have worked, it would have overwritten the
  interface configuration saved in an earlier loop iteration, now it should
  write all interfaces that are not set to autoconfigure


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22018 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-20 17:40:48 +00:00
Stephan Aßmus b60056cdb3 patch by Andre Garzia:
* it gets all the configuration and it saves it back but for some reason,
  the net_server is not noticing the changes yet


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-17 16:36:13 +00:00
Stephan Aßmus ae3a7f4dac * don't leak the rect data in case of failed realloc()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22006 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-17 16:24:43 +00:00
Stephan Aßmus 15a6a1bd6d * more pleasing insets/offsets and the proportion of the zoom button scales
with the font size


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-17 16:24:01 +00:00
Stephan Aßmus f7e1df7560 * get rid of RGBColor usage where it is not needed, this simplified many things,
possibly making them a little faster too
* mess with decorator button size calculation to make the whole layout scale
  more agreeable with the font size (no more fixed offsets/insets), but it
  is work in progress
* DefaultDecorator no longer allocated the border color array, it is part of
  the object now
* small memory footprint optimizations in ViewLayer, Decorator and WindowLayer


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22003 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-17 12:56:20 +00:00
Stephan Aßmus f591e3a0f2 * fix weird Shape op/point allocation
* handle out of memory situations
* don't try to copy (and assign op!) in SetData if opCount/ptCount is 0
-> FontDemo doesn't crash anymore eventually when cycling fonts in outline
mode


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-17 11:17:29 +00:00
Stephan Aßmus 6b9d63b18f patch by Andre Garzia:
* extracted a settings class from the view, now a dynamic number of ethernet
  devices is handled at the same time
* resolv.conf is parsed to extract the nameservers


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21970 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-15 21:57:41 +00:00
Stephan Aßmus bd57c145be * setting a different menu color with the menu preflet gives now visually
agreeable results (I hope)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21967 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-15 20:38:29 +00:00
Stephan Aßmus 91d0586a7d * it should be better to lock before accessing the data, even if reading only
* after this change, I have not spotted "left behind" cursors again, but it
  might just be bad luck...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21966 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-15 19:06:11 +00:00
Stephan Aßmus 86d8381f5f * fixed libbe_test build, I guess this was caused by Ingo's recent change
to the header path variable?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21965 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-15 18:52:50 +00:00
Stephan Aßmus 8f4f70a56d * implemented a lock up table for drawing text in B_OP_COPY,
maybe this is too resource hungry, feel free to critisize... :-)
* the speedup is there, but not overwhelming


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 17:09:20 +00:00
Stephan Aßmus c6811df0c3 * I am turning this back on, it seems the problems are fixed, and if not,
I would like to fix them. Using the string width cache results in a great
  drawing speed up, for example in StyledEdit and Mail. Any app that uses a
  larger BTextView.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21928 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 17:03:53 +00:00
Stephan Aßmus ea6280b6d5 * maybe I fixed the sometimes weird decorator buttons, I have not spotted them again with this change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 09:27:18 +00:00
Stephan Aßmus a2d6475360 * fixed usage of hardware accelerated inverting, of course we shouldn't do it again in software after we have done it in hardware...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 09:26:27 +00:00
Stephan Aßmus 5a626bd963 * removed code duplication in BView::check_lock() and do_owner_check(),
* revised use of check_lock() versus do_owner_check() (do_owner_check()
  is supposed to drop you into the debugger if there is no owner, otherwise
  it behaves like check_lock())
* ConstrainClippingRegion() no longer transmits empty regions to the
  app_server. I would have thought that my fix to ServerLink would have
  solved the issue I was investigating, but only this commit fixes it.
  Maybe the last commit would have fixed it if I did a "jam clean"...
* WonderBrush draws the icons again on mouse over...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21910 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-12 13:14:09 +00:00
Stephan Aßmus fddbc2311f * fix attaching and reading empty regions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21909 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-12 13:07:55 +00:00
Stephan Aßmus 8c1a98d8d4 * there was a complete mixup of "drawing origin" and "scrolling offset" in the
BView implementation (client side)
* introduced some private methods for _Convert*(BPoint*) methods which avoid
  doing the check_lock() thing in the recursion, also Origin() would likely
  have communicated with the app_server all the time, since the origin bit
  was needlessly invalidated, so some speedup should be achieved
* this should fix ticket #98


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21900 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-12 09:52:25 +00:00
Stephan Aßmus 95baf31294 * view accepting bitmaps are now cleared to white
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21895 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-11 15:56:37 +00:00
Stephan Aßmus aadc09c665 * fix the mixup of charCount (glyphs) versus bytes. The new font cache
implementation takes the byte count, even though it looks like this is
  less efficient when the glyph count is already known (I tested to
  optimize it away but it was not faster)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-11 13:34:09 +00:00
Stephan Aßmus b595496d03 * minor cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21890 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-11 13:31:59 +00:00
Stephan Aßmus e4273662d2 * this function might be called with a NULL FontCacheEntry, handle that
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21889 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-11 13:16:07 +00:00
Stephan Aßmus fe914c98b4 * added a version of SetFont() that takes a DrawState* to DrawingEngine and
Painter, that is needed to be able to tell if anti-aliasing is to be used,
  since the flags in the font can be overruled by the flags in the view...
* fixes aliased fonts reliably, tested with FontDemo


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-09 09:48:28 +00:00
Stephan Aßmus 05357ae700 Fixed an interesting bug in the app_server, after beating my head against
this for a long time... what happens when the app_server has requested a
redraw, but the client sends some drawing commands before starting the
redraw session? This would be the case, for example, when TextViews got
notified of their parent window becomming active (they would invert the
selection outside of any update session). When there was an additional
expose event, the app_server would already have the background cleared, so
the lonely "invert" command would invert the freshly painted background. Then
the normal Draw() of the TextView would be called because of the expose event.
By the time the text was rendered, it was rendered on the inverted background,
then the normal Draw() contained another "invert" command to invert the
region of the selection. Thus inverting just the text, and the background
twice. Solution:
* introduced a special handling for drawing commands arriving between
  requested update session and beginning of that session: the pending
  update region is clipped from the region the client is allowed to draw in.
* fixes funny text rendering in the selected part of text views. For example
  ticket #908.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21867 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-09 00:33:50 +00:00
Stephan Aßmus e83f8dc9a0 Didn't I have a bad feeling because of code duplication?
* fixed a bug in the font cache, the signature was generated in one way
  (rendering type) while the initialization of the font engine could
  use another way
* should fix non-antialiased straight text
* weird non-transformed text in FontDemo
* generally not using vector glyphs when it was supposed to use them (rotated
  or sheared text, or non-antialiased text)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21866 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-09 00:25:52 +00:00
Stephan Aßmus ee5180067d * the black SVG version now includes the dropshadows as bitmaps, which, given
that they are blurry anyways, should give you a perfectly scalable version of
  the logo in SVG


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21859 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-08 20:33:36 +00:00
Stephan Aßmus bbc424771b * convert shape coordinates to screen at the time of playing the picture
(fixes ticket #1367, stefano I thought you knew that I meant this in an
  earlier mail)
* move_pen_by() looked wrong in ServerPicture, have not tested though
* make sure the pen location is adjusted after stroke_line() and draw_string()
  in ServerPicture
* set_pen_location() does not need to update the Painter drawing state
* ServerWindow AS_LAYER_SET_PEN_SIZE needs to set the resulting pen size of
  the drawing state stack, not the one set on the current state
* ServerWindow AS_LAYER_GET_PEN_SIZE needs to return the current state's
  size, not the result of the stack
* small cleanups


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21855 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-08 18:36:23 +00:00
Stephan Aßmus a748b927a5 * make sure that the pattern used for line arrays is B_SOLID_HIGH
and that the previous pattern is restored after execution


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21853 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-08 18:30:28 +00:00
Stephan Aßmus aaa42c7e22 * added a way to get the unscaled pensize (ie that of the current draw state
of a view)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21852 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-08 18:29:09 +00:00
Stephan Aßmus 7f8d0be06f * fix ticket #1365, isinf(x) -> isinf(value)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21849 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-08 09:14:38 +00:00
Stephan Aßmus fc0369ec27 * added the Haiku logo with white and black letters as SVG. This does not
have the nice drop shadows, so it's only meant to be helpful to reproduce
  the logo in other graphics packages, but it's not the real logo!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21844 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-06 18:54:20 +00:00
Stephan Aßmus 4971740e39 * in FillRegion(), check if the current drawing mode is B_OP_INVERT,
and then use hardware acceleration... found out this is what our
  BTextView is actually using, that's why it never used hardware
  acceleration for invert rect/region before. Have not tested this on
  real hardware yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-06 18:50:44 +00:00
Stephan Aßmus 90ad4da30d * small cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-06 18:49:11 +00:00
Stephan Aßmus fe80954c2d * patch by Andre Garzia to fix some coding style issues
* fixed a potential memory leak in EthernetSettingsView::_ShowConfiguration()
  when the ioctl didn't succeed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21834 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-06 09:46:42 +00:00
Stephan Aßmus c9d2046fe5 * after my last changes to font rendering, it was about 15% slower than
before (although there should be much less lock contention)
* with this change, there is quite a bit of cleanup, text drawing is now
  about 20% faster than before the original changes to font caching,
  mostly due to turning off the kerning feature, which at the moment
  gives absolutely no benefit. The correct way of doing it might be to
  use kerning depending on the provided glyph spacing mode
* removed fPenLocation from Painter, the usage should be more correct now,
  since it is now consistently applied before the coordinate transformation
  from view to screen (also for DrawShape() now, before any view scaling
  and origin offset)
* Painter no longer has it's own instance of a ServerFont, instead it uses
  its AGGTextRenderer instance, which was per Painter again after the
  last change, and not global anymore, made _UpdateFont() useless
* When using GlyphLayoutEngine, it supports a second pass with the same
  FontCacheEntry through the introduction of a FontCacheReference. This
  speeds up DrawString a little, since it needs to calculate the bounding
  box for the string, and then draw the string in a second pass. This is
  now done with only one FontCacheEntry lookup
* I also tried to optimize the on-the-fly conversion of UTF8->CharCode away,
  since it was done four times per DrawString, but surprisingly, it proofed
  to be a slight slowdown.
* introduced a shortcut in DrawingEngine::DrawString() which avoids
  calculating the bounding box, we are now a tiny bit faster to figure
  out that we don't need to draw any string than Dano

In the test environment (drawing to offscreen bitmap and blitting to
screen eventually), text rendering is now about 3.7 times _faster_ than Dano
text rendering (directly to screen), for untransformed text. Unfortunately
I cannot test on the same machine in accelerant using version of the test
environment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21822 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-04 11:37:16 +00:00
Stephan Aßmus 94a48ae276 * use a different message code for DrawString() with escapement delta
and DrawString() without
* this change also includes adding the penlocation to the shape to-screem
  coordinate conversion (temporarily breaks shape rendering, will be fixed
  in next commit)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21821 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-04 11:22:47 +00:00
Stephan Aßmus c68e76bc26 * if there is any app actually using suggest_thread_priority() it won't
no longer use idle priority, even if an actual implementation is still
  missing


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21820 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-04 11:19:56 +00:00
Stephan Aßmus 7c1cb28850 * cache the tab highlight and shadow color
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21819 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-04 11:18:21 +00:00
Stephan Aßmus a4dcea7870 * remove dos newlines
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21818 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-04 11:16:22 +00:00
Stephan Aßmus 25a7061652 * moved AGGTextRenderer alongside it's pal, Painter, it felt lonely,
removed font_support folder
* ServerApp can use ServerFont::StringWidth() directly again
* more ServerFont functions implemented via GlyphLayoutEngine and
  custom consumer
* extended GlyphCache data structure to hole the left/right insets
  of the glyph shape between its advance width, took it from the earlier
  ServerFont implementation, have not tested if that gives same result
  as R5
* TODO: implement GetGylphShapes via GlyphCache, although it might not
  look as clean as it does now


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21805 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-03 01:11:27 +00:00
Stephan Aßmus 4389b7028c * TransformBounds() takes a const BRect&
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21801 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 21:05:34 +00:00
Stephan Aßmus 1a6914c517 * fixes the build, forgot to include in r21797
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21800 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 21:05:01 +00:00
Stephan Aßmus 2222864eed * complete overhaul of the font/glyph caching
* the previous AGG implementation is superfluous
* the new implementation is based on that one, but in a way that allows
  read/write locking to the list of cache entries (fonts) as well as
  read/write locking to the cached glyphs per individual font cache entry
* new GlyphLayoutEngine.h, which is to be the central place for layouting
  glyphs along the baseline.
  It handles the locking for getting the font cache entries.
  It works by giving it a template class GlyphConsumer which does the
  actual work.
* changed AGGTextRenderer to use the new font cache
* changed ServerFont::StringWidth(), and the bounding box stuff to use it
* changed DrawingEngine, it doesn't need the global font lock anymore
* our BFont thought that GetBoundingBoxesAsGlyphs and GetBoundingBoxesAsString
  is the same, which of course it isn't, hence the two separate functions...
  AsGlyphs just gets the bounding box of each glyph in a string, not treating
  the string as an actual word
  AsString adds the offset of the glyph in the word to the bounding box
* changed ServerProtocol.h accordingly for the different bounding box meaning


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21797 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 19:10:38 +00:00
Stephan Aßmus 693c7a1eaa * I was trying to debug my new font stuff in the app_server for about an hour
before I realized that it was FontDemo which was broken. It was easy to tell
  once I ran it on R5 for comparison... :-\


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21796 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 18:32:00 +00:00
Stephan Aßmus 075430faf4 * put some more useful utility classes into "shared". I tried to make sure
that OpenHashTable.h does not collide with all the other places that this
  is used, it seems everything still builds fine. Most problematic could be
  the OpenHashTable.h at kernel/util, but it seems it the target using
  that are not affected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21792 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 16:28:34 +00:00
Stephan Aßmus d22f48c908 * fix the build of the app_server test environment (libbe_test) after
the change to the nodemonitor syscall


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21791 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 16:23:49 +00:00