A Linux AppBar.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • myusernotyours
    New Member
    • Nov 2007
    • 188

    A Linux AppBar.

    Hi,
    Am looking to create an appbar window for linux. Haven't done much linux programming but am ok with c++ and windows. Av managed to do it in windows using the SHAppBarMessage here API function and it works fine. Now is there an API function for linux that works the same? Can someone point me to some good material on this?

    regards all.
  • edwardrsmith
    New Member
    • Feb 2008
    • 62

    #2
    You could use the Qt libraries (which will work on any OS as long as the libraries are installed). If you only want it to run on one machine (or one windows manager) then you could choose something slightly more specific.

    If you post what linux distribution you want to run it on I should be able to give you a few more choices.

    Edward

    Comment

    • myusernotyours
      New Member
      • Nov 2007
      • 188

      #3
      Originally posted by edwardrsmith
      You could use the Qt libraries (which will work on any OS as long as the libraries are installed). If you only want it to run on one machine (or one windows manager) then you could choose something slightly more specific.

      If you post what linux distribution you want to run it on I should be able to give you a few more choices.

      Edward
      Thanks Edward. I want it to run on any linux distribution. Probably I can use the QT libraries. Can u point me to some good place to get started? Are there other options?

      Comment

      • edwardrsmith
        New Member
        • Feb 2008
        • 62

        #4
        Well, the windows, app bars and such are controlled by a window manager. There are a lot of them out there for linux though Gnome and KDE seem to be the most common. KDE is actually based off of the Qt libraries.

        Qt is developed and maintained as a cross platform graphics library so it is a good place to start. You can get some information about it here. It can most likely be used for free but it all depends on what you plan to do with the app bar. (Read the liscense just in case)

        Gnome has it's own set of graphics libraries that should be able to be run on any linux computer (though this would require installing the entire window manager). I truly think that if you want to be able to use it on any linux distribution that Qt is your best bet.

        Edward

        Note: This question would probably have been better to ask on the Linux forum because of it's linux specific nature and the fact it has more to do with linux graphics then with actual c/c++ programming.

        Comment

        • RRick
          Recognized Expert Contributor
          • Feb 2007
          • 463

          #5
          I agree with Edwards that one of the cross platforms guis is the way to go. Using Qt will allow you to run your program on windows and/or unix boxes.

          If I remember correctly, Qt has some licensing restrictions and/or costs. I don't know the details. Check the Qt home site for more info.

          There is another gui cross platform library called Wx and is found at Wx home .

          Comment

          • edwardrsmith
            New Member
            • Feb 2008
            • 62

            #6
            Qt does have potential conflict from liscenses (as I said above) but I am fairly sure that it exists only for commercial use i.e. where you are selling the program you made in which case you must pay for a liscense.

            Edward

            Comment

            • myusernotyours
              New Member
              • Nov 2007
              • 188

              #7
              Av looked at the suggested libraries, thanks.
              wxWidgets is particularly inviting since it's open source but it does not support the creation of app bars. Am thinking there should be calls that inform the OS to treat a window as an app bar after it's created like it's done in windows, or something like that.
              Any ideas?

              Comment

              • Banfa
                Recognized Expert Expert
                • Feb 2006
                • 9067

                #8
                Originally posted by edwardrsmith
                Qt does have potential conflict from liscenses (as I said above) but I am fairly sure that it exists only for commercial use i.e. where you are selling the program you made in which case you must pay for a liscense.
                I looked at the Qt licensing options (after having realised that it wasn't Quick Time :-) it is available under the GPL for free (as in the British use of the word, £0, not the Open Source Community use of the word) for open source development or as a paid for commercial license for proprietary development.

                There is an evaluation download for the commercial license but what you can not do is start development using the GPL License and then switch to the Commercial License.

                I am not quite sure why that last restriction applies or of the logic behind it so if anyone can explain I am interested in hearing.

                Comment

                • newb16
                  Contributor
                  • Jul 2008
                  • 687

                  #9
                  Originally posted by Banfa
                  I what you can not do is start development using the GPL License and then switch to the Commercial License.

                  I am not quite sure why that last restriction applies or of the logic behind it so if anyone can explain I am interested in hearing.
                  If there were no such restriction, you could get a gpl version for a team of developers, and after a some man*years of development buy 1 (one) commercial license just to build the release that could be sold legally. They just try to reiterate that GPL poisoning occurs in the moment when you links the code you typed with GPL version of QT.

                  Comment

                  • myusernotyours
                    New Member
                    • Nov 2007
                    • 188

                    #10
                    Ok. Can the QT library be used to create an app bar for linux? Or do I need to do special calls to achieve this?

                    Comment

                    • edwardrsmith
                      New Member
                      • Feb 2008
                      • 62

                      #11
                      Yes, but it is not like windows. In fact, the other library mentioned above would work as well. Unlike windows, the system would not be responsible for updateing the app bar or managing it (beyond what is done for all programs when they are running). You will need to find the appropriate commands and system calls to achieve whatever functionality you want. I don't remember what the exact calls but you should be able to get an idea of them by looking around. There is also an app bar (which I believe is made using Qt) which looks like the mac app bar. If you take a look at its code it should give you a guide of what to do. (Sorry, but I don't remember the name of the program.)

                      Edward

                      Comment

                      • TamusJRoyce
                        New Member
                        • Apr 2008
                        • 108

                        #12
                        Originally posted by edwardrsmith
                        Gnome has it's own set of graphics libraries that should be able to be run on any linux computer (though this would require installing the entire window manager). I truly think that if you want to be able to use it on any linux distribution that Qt is your best bet.
                        Gnome uses the gtk2 library which is very much cross compatable, so long as you distribute the runtime with your application. It includes support for blind users, so even if you write a gui, it's cross-platform accessible to people with disabilities. gtk2 also forces you to use multi-language compatable strings, making it more cross-platform, and which means someone not using english will still be able to see it is english you are writing in (one reason why a runtime library is needed). Just make sure you set it's theme to the default OS within your code (pretty easy to do), so it doesn't look alien across platforms.

                        I prefer gtk2 over wxWindows myself, but both are good api's.

                        But unless you are writing it for KDE only, don't use qt. And last I remembered, for windows it has different licenses even for non-comercial use. But it's still an excellent choice for linux only.

                        Comment

                        • myusernotyours
                          New Member
                          • Nov 2007
                          • 188

                          #13
                          Hi all,

                          Am currently looking at the Xlib Library and it looks promising so far. As far as I have seen, I can create my appbar window by specifying some hints to the X-server. It should also work on most (All?) unix based platforms. That seems ok though that means I have to implement the windows part separately since i want it on that too. Someone who knows about this... Please clarify.

                          Regards.

                          Comment

                          • myusernotyours
                            New Member
                            • Nov 2007
                            • 188

                            #14
                            I may also add that creating the window is not the real problem here. It's actually getting the window to be displayed as an app Bar and having the OS or the window manager reserving this windows' 'sacred' space. I haven't seen support for this in any of the Qt, Gtk e.t.c libraries that's why i think the Xlib is the only way regardless of how the window is created.

                            Comment

                            • kraguel
                              New Member
                              • Oct 2008
                              • 1

                              #15
                              Take a look at aewm++_fspanel program. Here is the source:



                              Hope it helps.

                              Comment

                              Working...