473,396 Members | 2,036 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

A Linux AppBar.

myusernotyours
188 100+
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.
Aug 15 '08 #1
14 2488
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
Aug 15 '08 #2
myusernotyours
188 100+
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?
Aug 15 '08 #3
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.
Aug 15 '08 #4
RRick
463 Expert 256MB
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 .
Aug 15 '08 #5
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
Aug 15 '08 #6
myusernotyours
188 100+
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?
Aug 18 '08 #7
Banfa
9,065 Expert Mod 8TB
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.
Aug 18 '08 #8
newb16
687 512MB
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.
Aug 18 '08 #9
myusernotyours
188 100+
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?
Aug 18 '08 #10
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
Aug 18 '08 #11
TamusJRoyce
110 100+
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.
Aug 19 '08 #12
myusernotyours
188 100+
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.
Aug 20 '08 #13
myusernotyours
188 100+
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.
Aug 20 '08 #14
Take a look at aewm++_fspanel program. Here is the source:

http://ftp.de.debian.org/debian/pool....0.orig.tar.gz

Hope it helps.
Oct 30 '08 #15

Sign in to post your reply or Sign up for a free account.

Similar topics

4
by: Jhuola Hoptire | last post by:
Just installed J2RE 1.4.2 on a Linux server. I am very knew to the POSIX world. I couldn't dig-up much in the docs or via google about the following: 1 - Is there a standard way to make sure...
2
by: bobroq | last post by:
I am currently working on writing an application that functions like a desktop tool bar (like aol - when it has its docking feature turned on, Google Dekstop, or even when you right click your tool...
0
by: Navin Mishra | last post by:
Hi, Is there any example to make an AutoHide AppBar using C#/VB.NET ? Thanks in advance and regards Navin
0
by: gkelly | last post by:
I have an AppBar that works fine, except for one problem. It's stealing focus -The AppBar is written in C# -Access to it is via a COM object -Main app is a C++ app. -Button on app will use...
5
by: cranium.2003 | last post by:
hi, Here is my code #include <iostream.h> int main() { cout <<"HI"; return 0; } and using following command to compile a C++ program g++ ex1.cpp -o ex1
0
by: TyBreaker | last post by:
Does anyone know of a VB.NET example of an appbar? I have found a few examples of appbars for VB6 but I'd like a VB.NET example so that it exploits the latest code tricks if any. I've found a C#...
1
by: TyBreaker | last post by:
I have a simple form with a toolstrip on it and some toolstrip buttons. Tooltips work fine. But then I use the ShAppBarMessage API call to register the form as an Application Desktop Toolbar. ...
5
by: squishy | last post by:
I want to make an app that can dock to the sides of the desktop and offer auto-hiding. From what I have read, this is called an appbar. Does anyone have any code examples of vb.net created...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.