Commit Graph
69 Commits
Author SHA1 Message Date
John Scipione fbc8aeaac8 DeskCalc: Replace comment with equivalent code 2013-07-12 22:19:14 -04:00
John Scipione 43f09adbe2 DeskCalc: Add private _IsEmbedded() method 2013-07-12 22:19:14 -04:00
John Scipione d2577d74af DeskCalc: Remove ResizeTo() 2013-07-12 22:19:14 -04:00
John Scipione ed7d3e22f9 DeskCalc: Remove pre-ControlLook drawing code 2013-07-12 22:19:13 -04:00
John Scipione 29fbfe3110 DeskCalc: Style fixes 2013-07-12 22:19:13 -04:00
John Scipione b98de092d8 DeskCalc: Update copyright headers
Style fixes to header, update copyright years, remove my name
from files that I didn't have anything to do with besides style fixes,
add myself to ExpressionTextView.cpp
2013-07-12 22:19:12 -04:00
John Scipione f9d2a8cb25 DeskCalc: Remove extra FrameResized() call.
BView::ResizeTo() calls FrameResized() which resolves to the virtual
FrameResized() method in CalcView. So, FrameResized() was
getting called twice.
2013-06-26 18:10:54 -04:00
John Scipione d81cbcf359 DeskCalc: tiny whitespace style fix 2013-06-26 18:08:23 -04:00
Adrien Destugues 31535ac63b Make BAboutWindow modal
Ã* Set its type to B_MODAL_WINDO, and also set B_NOT_MOVABLE
 * Since this removes the window tab, add an "Ok" button to close the window
 * Remove the GetWindow mess and just use it as any regular window
 * Adjust all callers again

The AlertPosition method doesn't seem to work right, the window pops up
offset to the right. I also noticed that some of our calls to BAboutWindow
are actually not reacable because we removed Abutrequested from the apps.
Maybe we should clean them up (locale preflet and activity monitor are examples)

More annoying is the fact that opening a modal window from a deskbar replicant
is modal against the whole deskbar. Not sure what to do about that.
2013-05-01 10:10:37 +02:00
Adrien Destugues fd19c7366d Fix BAboutWindow lifecycle
BAboutWindow returned false in QuitRequested in order to hide instead of closing.
Not only this keeps a BLooper running for a rarely used window, but it also
prevents quitting an application in the window was not destroyed first.

 * Remove aforementioned QuitRequested method,
 * Add a static GetWindow method that returns the existing about window, if there
is one, or creates one if there is not. A boolean can be set to tell the caller
what happened,
 * Adjust all callers to use that new method, instead of managing the window themselves.
2013-04-30 21:50:24 +02:00
John Scipione 7fe8b2bf2a Also lock fAboutWindow before Quit()ting in other apps 2012-12-17 16:46:41 -05:00
John Scipione cea3811974 Remove About DeskCalc... from right click menu.
We decided not to include about dialogs in system apps (right?)
2012-11-13 00:36:33 -05:00
John Scipione 80d7bf83bd Add authors back. 2012-11-12 23:57:33 -05:00
John Scipione 97a814061e Instead of destroying the BAboutWindow object on close, Hide() it, then on the destructor of the calling window call Quit() explicitly to destroy it. 2012-11-12 23:57:30 -05:00
John Scipione 12a9a71db6 Use a quit bool in B_ABOUT_REQUESTED to indicate that the about window has quit instead of using kAboutWindowClosed message. This prevents message signature clashes. 2012-11-12 23:57:27 -05:00
John Scipione 3fdab58446 Set the about window object to NULL on close or quit.
Pass the BHandler object that opened the about window to BAboutWindow.
When the window closes, send a kAboutWindowClosed message back to the
handler. This allows the handler to set the variable to NULL.

Implement the new about dialog constructor in all apps that use it.
Remove the old constructor. This now works reliably for all cases I
tested without crashing and does the right thing on close. The setup
and teardown is a bit more complicated than I wanted though.
Unfortunately this seems to be necessary when not using a BAlert.

Fetching the app icon does not work reliably yet. This is because for
replicants the app may not be running. I may have to pass the icon in
instead of grabbing it from the signature.
2012-11-12 23:57:26 -05:00
John Scipione 5b0cd98792 WIP: Create the about dialog once, hide and show, Quit() when object is destroyed. 2012-11-12 23:57:25 -05:00
John Scipione 0046f44436 Modify about window to take an app signature.
* Grabs the app icon and version from the resource file.
* Allow you to specify the copyright holder instead of hardcoding
  "Haiku, Inc."
* Support multiple extra copyright fields.
* Modify BAlert to take a custom icon.
* Set the custom icon of the BAlert to the app icon.
* Also set the app version.

* Convert BAboutWindow to derive from BWindow
* Place a 128x128 icon and fill out a scrolling BTextView
  with options such as authors, version history, copyright,
  license, etc. Still needs some work but is coming along.

* Add the word Version to the version line, i8n'ed of course,
  and tweak the info box and default sizes.
2012-11-12 23:57:24 -05:00
John Scipione 593808d96a Return authors name's to DeskCalc headers.
No functional change.

* Surround email addresses in angle brackets.
* Add myself to ExpressionParser.cpp and .h
* Remove myself from ExpressionTextView.cpp and .h
* Alphatetize authors by last name.

Thanks Ingo and Axel.
2012-08-03 11:16:23 -04:00
John Scipione 9f5d4ecd97 Style fixes, update copyright, add myself as author.
No functional change.
2012-08-03 04:27:12 -04:00
John Scipione 7d404dbcae Rename the angle mode menu items to just 'Radians' and 'Degrees'. No reason for the word Mode. 2012-07-31 09:37:08 -04:00
John Scipione fa37d94d1b Fix radian/degree mode toggling bug in Deskcalc
I overlooked this problem in my last commit...

If you select the current angle (radian/degree) mode from the menu
it toggles the angle mode, fixed this to make it keep the current
mode.
2012-07-31 08:01:32 -04:00
John Scipione 8ffd0477dd Implement degree mode in DeskCalc.
Default is radian mode,  You set the option in the right click menu
like the other options.

Note: degree mode does not affect hyperbolic trigonometric functions.
This is how Mac Calculator, Windows Calculator, and Google Calculator
work.
2012-07-30 22:35:57 -04:00
Axel Dörfler 0084fa5209 Reverted the rounded buttons again.
* Following the previous discussion on the mailing list and Stippi's final mail.
* I tried to get used to it in the last couple of weeks, but I think it just
  looks out of place, and not good either.
2012-05-30 23:36:03 +02:00
John Scipione 85136facde Fix formatting bug in Deskcalc.
Calculations that take up the full width of the Deskcalc window
sometimes scroll the result over showing you only the tail end. This
is because the horizontal inset makes the area too small to fit the
result. Removing this horizontal inset means that the result will
always fit in the space provided, and Deskcalc will recalculate to
fit, but it also means that the result always starts at the leftmost
side of the textarea, a fair tradeoff.
2012-05-24 21:38:25 -04:00
Axel Dörfler a2e15b244f Changed the default background color to the system default. 2012-04-30 22:45:38 +02:00
John Scipione e08d64d0d6 If we caught the message in these cases there is no reason to continue on. 2012-04-18 02:57:55 -04:00
John Scipione 63c55f0212 Update Deskcalc's right-click menu options.
If CalcView is embedded as a replicant on the desktop it's parent
window is not CalcWindow. Furthermore, it can't switch between
compact, basic and scientific keypad modes, you are locked in tox
the one you picked at the time you embeded the view into the desktop.
So, I have updated the right-click message to reflect this reality
by taking away the keypad mode switching options. You can still
set auto num-lock and turn beep on and off (theoretically someday
anyway) but the CalcView receives these messages instead of
CalcWindow. So, these 2 options now work in the case of a CalcView
embedded in the desktop at least.
2012-04-18 01:56:17 -04:00
Oliver Tappe 546208a539 More catalog-related cleanup.
* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
  B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.
2012-04-16 21:31:22 +02:00
John Scipione a884b43bb1 Added support for buttons and menuframes with rounded corners.
* Not turned on for default buttons and menuframes right now.
* Updated Deskcalc and Keymap to use buttons with rounded corners.
* Overloaded methods with radium parameters are not virtual right
  now so as to not break vtables. Added /*virtual*/ before each
  method that should be made virtual in ControlLook.h
* Added a light line to the left border of the down arrow frame
  on menu frames as a small visual tweak.
* Replace StrokeRect() with StrokeRoundRect() when drawing the
  default button indicator. This gives them a rounded
  appearance if the button is also rounded.
* Added protected methods _DrawMenuFieldBackgroundOutside and
  _DrawMenuFieldBackgroundInside.
* Created some protected methods to get the edge, frame, and bevel
  colors from a passed in base color because it was a mess and I
  needed to calculate the colors from mutiple methods. It is much
  cleaner now.
* Added myself to ControlLook.cpp authors list. Assigned copyright
  to Haiku, Inc. Stippi also retains his copyright.
* Tons of style fixes.
  - Change all instances of `if (flags & B_FLAG)` to
    `if ((flags & B_FLAG) != 0)`
  - Reorder some methods.
  - Reorder includes.
  - Spacing.
  - Updated comments.
2012-04-16 02:10:03 -04:00
Philippe Saint-Pierre d63b75faf8 Outline of labels/strings drawn to desktop
* Rather than duplicating the decision taking logic involving wheter or not to draw
the outline or glow in every replicant, update be_control_look to make it more
generic.
* The Monitoring of the background preferences is now only done in Tracker (where it
was already being done).
* Add a BControlLook::B_IGNORE_OUTLINE flag to avoid this new behaviour.
* Remove that said logic from ActivityMonitor and use be_control_look.
* Use the ignore flag in DeskCalc to avoid the outline in its case.

Should fix #7716, #7291.
2012-02-22 19:06:22 -05:00
John Scipione 60ba75c5ec Add a scientific mode to Deskcalc.
Deskcalc already contains support for all the functions in scientific mode
but up until now you had to know what they were called and type them in to
figure them out. Scientific mode gives you access to most of the available
functions via buttons.

Pushing one of the the scientific mode buttons inserts the function name
along with an innertube () at the current cursor location. If you have some
text highlighted when you push a scientific mode button it will put that
text inside the innertube. So you can type 0.5, then highlight the text with
the mouse, and then push the sin button and you will get sin(0.5).

The contextual menu has been altered to support the new mode.
Instead of having a single show keypad option in the contextual menu there
are 3 new options instead. Compact mode, Basic mode, and Scientific mode.
Basic mode is the default mode showing the basic keypad. Compact mode is the
same as show keypad turned off, showing just a bare text field. Scientific
mode is the new mode which adds buttons for the different transcendental
functions and constants that Deskcalc supports. You can also use Alt+0, Alt+1,
and Alt+2 keyboard modifiers to switch between the modes.

In addition to accepting the word 'pi' for the circumference of the unit
circle, Deskcalc now also recognizes the UTF-8 character π which has a
dedicated button in scientific mode. I also changed the parser so that
lowercase 'e' always means Euler's number and uppercase 'E' always means
'times 10 to the' so 1E5 means 1 times 10 to the 5th.

Another small tweak I did was to adjust the minimum basic mode width so that
the window is flush with the tab.

I also renamed fColums to fColumns, took out some spaces and other style
changes and bumped the version to 2.2.0.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-06 09:38:39 +00:00
Jonas Sundström 62769fc6d5 Follow-up on r41108. Removal of About-windows and menu items.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-26 17:29:28 +00:00
Jonas Sundström 11c7ff531a Removing most About windows and menu items as discussed here
http://www.freelists.org/post/haiku-commits/r40968-in-haikutrunksrcapps-activitymonitor-bootmanager-charactermap-codycam-deskbar,3
Leaving them for now in replicants, and in Terminal, according to (my interpretation of) the instructions here
http://dev.haiku-os.org/browser/haiku/trunk/src/apps/terminal/README.GPL_to_OBOS#L70
Some sporadic cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-26 02:18:52 +00:00
Jonas Sundström 560ff4478d Use resource definition files instead of DoCatalogs rule. Rename B_TRANSLATE_APP_NAME and related macros to the more generic B_TRANSLATE_SYSTEM_NAME, to also fits add-ons, folders, etc, and make 'System name' its standard context. Change CodyCam and PoorMan's app signatures to match the overall x-vnd.Haiku-App pattern. Some clean-up. Make SlideShowSaver build again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-25 22:13:48 +00:00
Jonas Sundström 31db75d0ae New stippi on the block? Nah. Just a typo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40969 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-16 10:58:38 +00:00
Jonas Sundström b97c51490a Making use of B_TRANSLATE_APP_NAME, BAboutMenuItem, BAboutWindow. Clean-up. Removal of some ellipsis. ('About Haiku' in Deskbar.)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40968 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-16 00:42:18 +00:00
Philippe Saint-Pierre c45c76e658 DeskCalc
Move the Invalidate() call introduced in r40863. It is now in FrameResized().

This now seems to fix #7010 for good.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40864 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-08 01:50:25 +00:00
Philippe Saint-Pierre 13b4be3fb2 DeskCalc:
Invalidate the CalcView after changing the Show Keypad option, to force to redraw the keypad.

Fixes ticket #7010.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-03-07 23:33:08 +00:00
Philippe Saint-Pierre 14afc67b4c DeskCalc:
* Replace usage of strcpy by strlcpy (CID 6790)
 * Check the return value of FindApp before continuing (CID 2366)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-23 02:08:03 +00:00
Adrien Destugues 7c2ffab858 Patch from Jason Fagnière (Protonux) as part of GCI :
* i18nize devices, charactermap, cdplayer, activitymonitor.

Thanks!

(note : there are some known 80-column problems in this patch)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39835 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-12-13 21:00:43 +00:00
Stephan Aßmus 665c794f1d Patch by Wim: The resulting expression string is now fit to the current width
of the window. Insignificant digits are truncated from the end. DeskCalc may
also switch to scientific notation if there is not enough room left.

Thanks a lot! Fixes ticket #5203.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-04-21 17:20:29 +00:00
Stephan Aßmus 7974d3dcf3 Patch by Humdinger:
Updated Haiku apps to use sentence-case. What a huge undertaking...
The files where I had to apply the patch manually (for mysterious
reasons) have also gotten a whitespace cleanup. I've proof-read
everything so hopefully there should be no problems.

This should be the final part of #5169.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35049 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-01-13 14:33:35 +00:00
Alexandre Deckner accec9a7ae * Style fixes. Encountered ambiguous cases, please see my following questions
in the commit ml.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33923 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-06 17:32:07 +00:00
Ingo Weinhold 59d799dabc * Moved the mapm library from src/apps/deskcalc to src/libs and headers/libs.
* Moved the ExpressionParser class to shared. It's now built into its own
  static library.
* Added hexadecimal number support to the expression parser as well as
  Evaluation*() methods to get a number instead of a string.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-28 17:10:40 +00:00
Stephan Aßmus b4dce77e73 * Repurposed the calculator icon. The icon only shows when the keypad is hidden,
so someone using it to trigger evaluation is highly unlikely, since he can
  just press return/enter. But when DeskCalc is embedded into the Desktop, it
  is convenient to clear the text view. (Clicking anywhere in DeskCalc already
  gives the text view focus.)
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30697 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-10 11:26:03 +00:00
Stephan Aßmus 160f5f5e2f Patch by Philippe Saint-Pierre: Don't use BTextView::LineHeight() when the font
has not yet been set... Thanks a lot!

D'oh, this one made me slap my hand against my forehead!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-10 08:29:05 +00:00
Stephan Aßmus 14cfdab543 Reset the follow mode to "follow none" when instantiating a replicant view.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29918 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-05 07:35:40 +00:00
Stephan Aßmus 2833e9ea83 * Fix drawing the background if needed on other shelfs than Tracker (untested).
* Fix invalidating the whole view when receiving a color drop, since the frame
  around the text input is also affected now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29893 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-04 08:08:51 +00:00
Stephan Aßmus 403687d8d2 * Beautified everything with the help of BControlLook.
* When embedded on the desktop, draw with alpha compositing.
* Implemented flashing the pressed keys.
* Clicking the calculator icon in compressed mode will evaluate.
* Cleaned up dead code, did some refactoring.
* Removed Audio Feedback option, since the feature is currently missing support
  in Haiku. (play_sound() unimplemented)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29763 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-28 19:45:45 +00:00