Solved

client program mainly for windows ...

Posted on 2003-11-23
7
571 Views
Last Modified: 2010-04-17
I want to make a client program that is supposed to work on all newer kind of windows operating systems (from w95 to windows XP). In the long run, I want the program to run on all kind of operating sysems that common people use, like BSD, linux, mac and so on, but first to the windows part.

      1) How do I make a windows-program that show up as an icon to the right in the bottom panel (where the printer icon and other icons are  ...)?
      2) How do I make the program GUI jump up when I double click it and how do I get it down?
      3) How do I make it contain a bunch of tabs in the top?
      4) Since I later on want to port this, would C/C++ be the best way of solving it? And how do I best separate the OS:spec parts from the common stuff?

A source template would be nice
0
Comment
Question by:mdoland
  • 2
7 Comments
 
LVL 8

Accepted Solution

by:
_corey_ earned 43 total points
ID: 9807256
I would probably suggest looking into something like

www.trolltech.com Qt
0
 
LVL 48

Assisted Solution

by:AlexFM
AlexFM earned 41 total points
ID: 9808483
0
 
LVL 3

Assisted Solution

by:mh2
mh2 earned 41 total points
ID: 9817585

1. Windows only: Look into the function Shell_NotifyIcon(...) in your MSDN.

2. Windows only: [take this with a pinch of salt, I'm not 100% sure]
    Keep track of your applications status, set a boolean variable when it is in tool tray state.
    Add a message handler for WM_LBUTTONDBLCLK
    Use ShowWindow(..) to display your window back in the normal state

3. Windows only: "In the top" I assume you mean along the top edge of your window? The Tab control should do the trick here, but if your window is not a dialog (drawn in GUI) you'll have to create it programatically.

4. Yes, C++ is your best choice here IMHO to be portable. BUT you must be _very_ careful not to use _any_ OS specific calls in your main application API, use only C++ standard calls and code (for example, don't use __declspec(property)). Unless you use a toolkit such as QT you will also have to make several indepedant versions of your UI, as the help given above by me is for Windows only. To be cross-platform, you will need to handle your tool tray differently (does your target platform even have the concept of a "tool tray" is a question needed to be asked?)

What you must do is seperate your application into business logic and GUI logic. The business logic must handle all functionality in your application. The GUI code must _only_ be an event processor, and must use these "business" classes to do the real work. This way you can build these "business logic" into a .dll/.so whatever and link it to your chosen front-end. So you make a front-end implementation in MFC, and one for say Linux in Gnome, both handle an event, say a form with data capture. Upon clicking say a "Save" button, they collect the data in the form into a standard object/format as defined by your "business logic", then pass this to an object in your common code for validation and saving to database.

As you can imagine, developing a truly cross-platform application is a tricky task. There is no one "source template" that can tell you how to architecture your application.
0
 
LVL 48

Expert Comment

by:AlexFM
ID: 10319523
I think points should be splitted.
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Displaying an arrayList in a listView using the default adapter is rarely the best solution. To get full control of your display data, and to be able to refresh it after editing, requires the use of a custom adapter.
A short article about problems I had with the new location API and permissions in Marshmallow
In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now