From mmassonnet at gmail.com Thu May 1 14:26:32 2008 From: mmassonnet at gmail.com (Mike Massonnet) Date: Thu, 1 May 2008 14:26:32 +0200 Subject: Xfconf channel/property names In-Reply-To: <4818A5F2.4060303@cornell.edu> References: <20080430092518.GD13205@failure.del> <4818A5F2.4060303@cornell.edu> Message-ID: <20080501122632.GG13205@failure.del> Ok, understood. Thanks :-) Mike On Wed, Apr 30, 2008 at 10:01:38AM -0700, Brian J. Tarricone wrote: > Mike Massonnet wrote: > > Hi, > > > > Why can't a channel name have a slash? > > Because slashes are property tree separators. The full "canonical" name > of a property is "/channelname/prop/name/foo". Having the channel name > dealt with separately from the property name is mainly a holdover from > MCS, and a way to make the separation between channels more 'concrete'. > > > Right now, the channel name can't have > > slashes, while the property name can. > > Not entirely true. The property name just uses slashes as a > hierarchical separator. I wouldn't consider the slashes as a 'part' of > the property name. > > > In the way I introduced xfconf in > > xfce4-notes-plugin, I started with the following channel names: > > * /Xfce4NotesPlugin/PanelPlugin > > * /Xfce4NotesPlugin/NewWindow > > > > Actually it isn't a matter how they are named, I already switched to defines in > > the code and with the following naming: > > * xfce4-notes-plugin_panel-plugin > > * xfce4-notes-plugin_new-window > > > > What I am interested in is, how do you name the different channels and > > properties? > > A channel is intended to be a logical grouping based around an > application. Most applications wouldn't have more than one channel. If > you have logical groupings inside an application, that's why the > property names are hierarchical. > > -brian > _______________________________________________ > Xfce4-dev mailing list > Xfce4-dev at xfce.org > http://foo-projects.org/mailman/listinfo/xfce4-dev From stephan at xfce.org Sun May 4 08:52:11 2008 From: stephan at xfce.org (Stephan Arts) Date: Sun, 4 May 2008 08:52:11 +0200 Subject: Reasons to develop an easy to install All in One version of Xubuntu Hardy Heron for the Playstation 3 In-Reply-To: References: Message-ID: <74b8614e0805032352q28cc4eecy9798a20ce6bb6c52@mail.gmail.com> On Sun, May 4, 2008 at 4:51 AM, Vikram Vaka wrote: > > > Ok, great. When I take a look at your feature-list, none of them are Xfce related. So, here comes my question: 'What does all this have to do with xfce?!' - Stephan From cody-somerville at ubuntu.com Sun May 4 09:56:55 2008 From: cody-somerville at ubuntu.com (Cody A.W. Somerville) Date: Sun, 4 May 2008 04:56:55 -0300 Subject: Reasons to develop an easy to install All in One version of Xubuntu Hardy Heron for the Playstation 3 In-Reply-To: <74b8614e0805032352q28cc4eecy9798a20ce6bb6c52@mail.gmail.com> References: <74b8614e0805032352q28cc4eecy9798a20ce6bb6c52@mail.gmail.com> Message-ID: Where can I find the parent post? It should be noted that Xubuntu can already run on the PS3. Cheers, On Sun, May 4, 2008 at 3:52 AM, Stephan Arts wrote: > On Sun, May 4, 2008 at 4:51 AM, Vikram Vaka wrote: > > > > > > > > Ok, great. > > When I take a look at your feature-list, none of them are Xfce related. > So, here comes my question: > > 'What does all this have to do with xfce?!' > > - > Stephan > _______________________________________________ > Xfce4-dev mailing list > Xfce4-dev at xfce.org > http://foo-projects.org/mailman/listinfo/xfce4-dev > -- Cody A.W. Somerville Software Engineer Red Cow Marketing & Technologies, Inc. Office: 506-458-1290 Toll Free: 1-877-733-2699 Fax: 506-453-9112 Cell: 506-449-5899 Email: cody at redcow.ca http://www.redcow.ca -------------- next part -------------- An HTML attachment was scrubbed... URL: http://foo-projects.org/pipermail/xfce4-dev/attachments/20080504/b6efa737/attachment.html From stephan at xfce.org Sun May 4 10:26:22 2008 From: stephan at xfce.org (Stephan Arts) Date: Sun, 4 May 2008 10:26:22 +0200 Subject: Reasons to develop an easy to install All in One version of Xubuntu Hardy Heron for the Playstation 3 In-Reply-To: References: <74b8614e0805032352q28cc4eecy9798a20ce6bb6c52@mail.gmail.com> Message-ID: <74b8614e0805040126x4b824c2aqe8aec56f1872ca76@mail.gmail.com> Parent-post: ^_~ ---------- Forwarded message ---------- From: Vikram Vaka Date: Sun, May 4, 2008 at 4:51 AM Subject: Reasons to develop an easy to install All in One version of Xubuntu Hardy Heron for the Playstation 3 To: xfce4-dev at xfce.org Yellow Dog Linux and Ubuntu currently do have a decent version out for the PS3. But both are ridiculously slow due to the PS3's meager 256mbs of ram. Xubuntu is light years ahead of YDL and Ubuntu in how fast it runs on the PS3 inspite of the ram limitations. I have known many people who installed YDL or Ubuntu on the PS3 as their first exposure to linux only to be turned off by how slowly it ran. But Xubuntu despite being by and far the fastest distro one can install on the PS3, doesn't recognize any of the PS3's components when you install it initially. It is possible to get the PS3's WiFi card, Blu Ray drive, Soundcard and audio, Bluetooth, Six Axis, popular Bluetooth Keyboards and Mice, memory cards, xvid and divx codecs working on Xubuntu. It's possible to get rid of the black bars that show up on the current Xbuntu PS3 version when viewed on any hdtv. And it's possible to maximize the 256mbs of ram on the PS3 by disabling all the services running by default on the PS3 that aren't absolutely necessary. The link below shows exactly how to do much of that? http://psubuntu.com/forum/viewtopic.php?t=904 But this process is extremely complex for people who have very little experience with linux. It's a pain even for people such as myself to have to do all of that to get Xubuntu on the PS3 with it's WiFi internet working out of the box. Furthermore new people trying linux on the PS3 will be extremely frustrated when they can't get the operating system running at 1080i (far superior to 720p in my personal experience) on their hdtv because they didn't know to do the following when installing Xubuntu? http://psubuntu.com/installation-instructions/setup/ If you listed these commands when you first launch the install cd recommending 1080i and 1080p at 60hz for US TVs and 1080i and 1080p at 50hz for Australian TVs. You would save a whole ton of people a lot of headaches. So please put together a PS3 version of Xbuntu that lets you select the resolution of your monitor when you install it and that has PS3's WiFi card, Blu Ray drive, Soundcard, Bluetooth, Six Axis, divx and xvid codecs and popular Bluetooth Keyboards and Mice working out of the box. Why force 20 million people to each have to go through all these steps to get their PS3's WiFi card and other components working when you could make a version that comes with the appropriate drivers already. The standard hardware of all PS3s makes this extremely easy to implement and the cell possessor its something to powerful to run linux on it. When people find out that they can easily through a no hassile install turn their PS3 into one of the fastest and cheapest computers on the market, many PS3 owners will try out linux on it and be exposed to Xubuntu for the very first time. If your PS3 build came prepackaged with drivers for PS3's components like YDL does, you could easily become the definitive linux to install on a PS3. You could reach 20 million homes immediately, and many more to come. You would be doing a massive favor to both PS3 owners everywhere (by having an all in one PS3 linux distro that's not incredibly slow like YDL is) and to the linux community at large (by exposing many more people to a version linux that's lightning fast and smooth as butter). To put this all together, here is a list of features such an all in one PS3 version of Xubuntu needs to have? Menu asking for the highest resolution your tv can support, Built In Drivers For WiFi, Drivers for Bluetooth and SixAxis, Drivers for the Bluray Drive, Drivers for popular Bluetooth Keyboards & Mice, Drivers for PS3's memory card reader, Drivers for PS3's audio and general TV Speakers, Xvid & DivX Codecs and a media player, Launcher on the desktop that Reboots into PS3 Menu by executing the command boot-game-os A Fix To Get Rid of Black Bars Displayed On HDTVs ? When you install Xubuntu, you see blackbars all around, Don't have any services running in the background by default that aren't absolutely necessary as the PS3 only has 256 mbs of ram Someway To Let You Rename The Title of Every Single Program On The Menu & if possible perhaps even Create New Folders in the Menu & Sort Programs Into Different Folders In the same way that windows lets you completely customize and reorganize the program names on the start menu, Some Included Application That Lets You Reskin The OS To Customize How It Looks if and only if a quality application that lets you do that exists. ------------What does the linux community have to gain by doing this?--------------- There are already over 20 million PS3 owners, and many more to come. I estimate that there are more PlayStation 3 machines in people's home's than PPC and intel macs combined. By taking full advantage of this, Ubuntu could theoretically grow to a larger market share than mac OSX, which would put it on the proverbial radar in a very serious way. As of now both the Ubuntu PS3 port and the Xubuntu ports are struggling. I would love it if you guys reassess the value of this port and really throw your might behind creating one ultimate hardy heron release. Not only that, but I think Xuibuntu should use the opportunity to implement a few features that could make it the best gaming OS on earth, such as qjoypad integration and a gaming-mode wherein all processes not related to the task at hand are hibernated to swap while a game or, say, fullscreen blender, runs. Windows is why people are running from the PC for their gaming. Let them run to linux. Let them not be disappointed. ...Let them wonder why they even bother with windows. In addition, Sony has done something great by letting us use the PS3 to run linux's own code. Let them be envied for it. What can linux's devs lose by developing Xubuntu for the PS3? Maybe countless people around the world using Xubuntu on the most powerful computer out there? If Xubuntu isn't there for the PS3, everyone will turn to YellowDog and Ubuntu, which are only slightly more functional, and incredibly slow due to the ram limitations. There are very few people who retain hope for PS3 version of Xubuntu. I'm not just saying this is an opportunity. I'm saying this is a good opportunity, and a relatively exclusive opportunity. To miss it would be terrible. Not that we will. Those of us with PS3's are making do with what we have... but the lack of real support really will have slowed us down in taking advantage of the situation. Furthermore, you guys are our best hope of negotiating the unlocking of the RSX. If that happens, linux will be in direct competition with the PS3's gaming OS. If you guys care to compete, and we make something better, well, what would that say about gaming on linux? People have PS3's. Did anyone think they just might want to try tremulous, apricot, warsow, urbanterror, nexuiz, openarena, and so on and so forth on them? How else is that going to happen? PS3 owners are humans too. And they're a lot more likely to try linux on their PS3 than their PC, I would think. EVERY SINGLE guy I know who owns a PS3 told me that he wants to use his PS3 as a surfing/office/entertainment machine and has heard that there are ways to put another OS on it and that they want to get rid of a PC in their living room because it's too loud and too big and they need it for news and surfing and stuff like that, but would like to just have only a PS3 they already own with possibilities of a simple living-room-pc. I think that a simple installation of Xubuntu on a PS3 would give a great market share for Xubuntu and PS3-Users would love to have an linux os that is not slowed to a crawl by the PS3's meager 256 mbs of ram. On Sun, May 4, 2008 at 9:56 AM, Cody A.W. Somerville wrote: > Where can I find the parent post? > > It should be noted that Xubuntu can already run on the PS3. > > Cheers, > > > > On Sun, May 4, 2008 at 3:52 AM, Stephan Arts wrote: > > > > > > > > > On Sun, May 4, 2008 at 4:51 AM, Vikram Vaka wrote: > > > > > > > > > > > > > Ok, great. > > > > When I take a look at your feature-list, none of them are Xfce related. > > So, here comes my question: > > > > 'What does all this have to do with xfce?!' > > > > - > > Stephan From imnotb at gmail.com Sun May 4 11:56:49 2008 From: imnotb at gmail.com (Vincent) Date: Sun, 4 May 2008 11:56:49 +0200 Subject: Reasons to develop an easy to install All in One version of Xubuntu Hardy Heron for the Playstation 3 In-Reply-To: <74b8614e0805040126x4b824c2aqe8aec56f1872ca76@mail.gmail.com> References: <74b8614e0805032352q28cc4eecy9798a20ce6bb6c52@mail.gmail.com> <74b8614e0805040126x4b824c2aqe8aec56f1872ca76@mail.gmail.com> Message-ID: <749ebd440805040256o43ea1271od581350fcc37d43b@mail.gmail.com> On 5/4/08, Stephan Arts wrote: > > Parent-post: ^_~ > > > ---------- Forwarded message ---------- > From: Vikram Vaka > Date: Sun, May 4, 2008 at 4:51 AM > Subject: Reasons to develop an easy to install All in One version of > Xubuntu Hardy Heron for the Playstation 3 > To: xfce4-dev at xfce.org > > > > > Yellow Dog Linux and Ubuntu currently do have a decent version out for > the PS3. But both are ridiculously slow due to the PS3's meager 256mbs > of ram. Xubuntu is light years ahead of YDL and Ubuntu in how fast it > runs on the PS3 inspite of the ram limitations. I have known many > people who installed YDL or Ubuntu on the PS3 as their first exposure > to linux only to be turned off by how slowly it ran. > > But Xubuntu despite being by and far the fastest distro one can > install on the PS3, doesn't recognize any of the PS3's components when > you install it initially. > > It is possible to get the PS3's WiFi card, Blu Ray drive, Soundcard > and audio, Bluetooth, Six Axis, popular Bluetooth Keyboards and Mice, > memory cards, xvid and divx codecs working on Xubuntu. It's possible > to get rid of the black bars that show up on the current Xbuntu PS3 > version when viewed on any hdtv. And it's possible to maximize the > 256mbs of ram on the PS3 by disabling all the services running by > default on the PS3 that aren't absolutely necessary. > > The link below shows exactly how to do much of that? > > http://psubuntu.com/forum/viewtopic.php?t=904 > > But this process is extremely complex for people who have very little > experience with linux. It's a pain even for people such as myself to > have to do all of that to get Xubuntu on the PS3 with it's WiFi > internet working out of the box. > > Furthermore new people trying linux on the PS3 will be extremely > frustrated when they can't get the operating system running at 1080i > (far superior to 720p in my personal experience) on their hdtv because > they didn't know to do the following when installing Xubuntu? > > http://psubuntu.com/installation-instructions/setup/ > > If you listed these commands when you first launch the install cd > recommending 1080i and 1080p at 60hz for US TVs and 1080i and 1080p > at 50hz for Australian TVs. You would save a whole ton of people a lot > of headaches. > > So please put together a PS3 version of Xbuntu that lets you select > the resolution of your monitor when you install it and that has PS3's > WiFi card, Blu Ray drive, Soundcard, Bluetooth, Six Axis, divx and > xvid codecs and popular Bluetooth Keyboards and Mice working out of > the box. > > Why force 20 million people to each have to go through all these steps > to get their PS3's WiFi card and other components working when you > could make a version that comes with the appropriate drivers already. > > The standard hardware of all PS3s makes this extremely easy to > implement and the cell possessor its something to powerful to run > linux on it. When people find out that they can easily through a no > hassile install turn their PS3 into one of the fastest and cheapest > computers on the market, many PS3 owners will try out linux on it and > be exposed to Xubuntu for the very first time. > > If your PS3 build came prepackaged with drivers for PS3's components > like YDL does, you could easily become the definitive linux to install > on a PS3. You could reach 20 million homes immediately, and many more > to come. You would be doing a massive favor to both PS3 owners > everywhere (by having an all in one PS3 linux distro that's not > incredibly slow like YDL is) and to the linux community at large (by > exposing many more people to a version linux that's lightning fast and > smooth as butter). > > To put this all together, here is a list of features such an all in > one PS3 version of Xubuntu needs to have? > > Menu asking for the highest resolution your tv can support, > > Built In Drivers For WiFi, > > Drivers for Bluetooth and SixAxis, > > Drivers for the Bluray Drive, > > Drivers for popular Bluetooth Keyboards & Mice, > > Drivers for PS3's memory card reader, > > Drivers for PS3's audio and general TV Speakers, > > Xvid & DivX Codecs and a media player, > > Launcher on the desktop that Reboots into PS3 Menu by executing the > command boot-game-os > > A Fix To Get Rid of Black Bars Displayed On HDTVs ? When you install > Xubuntu, you see blackbars all around, > > Don't have any services running in the background by default that > aren't absolutely necessary as the PS3 only has 256 mbs of ram > > Someway To Let You Rename The Title of Every Single Program On The > Menu & if possible perhaps even Create New Folders in the Menu & Sort > Programs Into Different Folders In the same way that windows lets you > completely customize and reorganize the program names on the start > menu, > > Some Included Application That Lets You Reskin The OS To Customize How > It Looks if and only if a quality application that lets you do that > exists. > > > > > ------------What does the linux community have to gain by doing > this?--------------- > > There are already over 20 million PS3 owners, and many more to come. > I estimate that there are more PlayStation 3 machines in people's > home's than PPC and intel macs combined. By taking full advantage of > this, Ubuntu could theoretically grow to a larger market share than > mac OSX, which would put it on the proverbial radar in a very serious > way. > > As of now both the Ubuntu PS3 port and the Xubuntu ports are > struggling. I would love it if you guys reassess the value of this > port and really throw your might behind creating one ultimate hardy > heron release. Not only that, but I think Xuibuntu should use the > opportunity to implement a few features that could make it the best > gaming OS on earth, such as qjoypad integration and a gaming-mode > wherein all processes not related to the task at hand are hibernated > to swap while a game or, say, fullscreen blender, runs. > > Windows is why people are running from the PC for their gaming. Let > them run to linux. Let them not be disappointed. ...Let them wonder > why they even bother with windows. > > In addition, Sony has done something great by letting us use the PS3 > to run linux's own code. Let them be envied for it. > > What can linux's devs lose by developing Xubuntu for the PS3? Maybe > countless people around the world using Xubuntu on the most powerful > computer out there? If Xubuntu isn't there for the PS3, everyone will > turn to YellowDog and Ubuntu, which are only slightly more functional, > and incredibly slow due to the ram limitations. There are very few > people who retain hope for PS3 version of Xubuntu. > > I'm not just saying this is an opportunity. I'm saying this is a good > opportunity, and a relatively exclusive opportunity. To miss it would > be terrible. Not that we will. Those of us with PS3's are making do > with what we have... but the lack of real support really will have > slowed us down in taking advantage of the situation. > > > Furthermore, you guys are our best hope of negotiating the unlocking > of the RSX. If that happens, linux will be in direct competition with > the PS3's gaming OS. If you guys care to compete, and we make > something better, well, what would that say about gaming on linux? > People have PS3's. Did anyone think they just might want to try > tremulous, apricot, warsow, urbanterror, nexuiz, openarena, and so on > and so forth on them? How else is that going to happen? PS3 owners are > humans too. And they're a lot more likely to try linux on their PS3 > than their PC, I would think. > > > EVERY SINGLE guy I know who owns a PS3 told me that he wants to use > his PS3 as a surfing/office/entertainment machine and has heard that > there are ways to put another OS on it and that they want to get rid > of a PC in their living room because it's too loud and too big and > they need it for news and surfing and stuff like that, but would like > to just have only a PS3 they already own with possibilities of a > simple living-room-pc. I think that a simple installation of Xubuntu > on a PS3 would give a great market share for Xubuntu and PS3-Users > would love to have an linux os that is not slowed to a crawl by the > PS3's meager 256 mbs of ram. OK, that sounds like a message for xubuntu-devel :P https://lists.ubuntu.com/mailman/listinfo/xubuntu-devel Though I predict that it's not going to happen. Xubuntu is already lacking manpower. The PS3 is very much an edge use case. Right, 20 million people might use a PS3, but consider how many people are using a PC and how many actually run a Linux distribution, let alone Xubuntu. If you like, you could see if you can create your own PS3 version of Xubuntu, but Xubuntu is a volunteer project with a shortage in manpower. Then again, I should probably save this reply for the xubuntu-devel mailinglist, so please post it there ^_~ (yeah, I just used a Japanese smiley!) On Sun, May 4, 2008 at 9:56 AM, Cody A.W. Somerville > wrote: > > Where can I find the parent post? > > > > It should be noted that Xubuntu can already run on the PS3. > > > > Cheers, > > > > > > > > On Sun, May 4, 2008 at 3:52 AM, Stephan Arts wrote: > > > > > > > > > > > > > > On Sun, May 4, 2008 at 4:51 AM, Vikram Vaka > wrote: > > > > > > > > > > > > > > > > > > Ok, great. > > > > > > When I take a look at your feature-list, none of them are Xfce > related. > > > So, here comes my question: > > > > > > 'What does all this have to do with xfce?!' > > > > > > - > > > Stephan > _______________________________________________ > Xfce4-dev mailing list > Xfce4-dev at xfce.org > http://foo-projects.org/mailman/listinfo/xfce4-dev > -- Vincent -------------- next part -------------- An HTML attachment was scrubbed... URL: http://foo-projects.org/pipermail/xfce4-dev/attachments/20080504/1a67a87c/attachment-0001.html From jp.guillemin at free.fr Thu May 8 20:08:23 2008 From: jp.guillemin at free.fr (jp.guillemin) Date: Thu, 08 May 2008 20:08:23 +0200 Subject: xfce mixer plugin & suspend Message-ID: <48234197.7030103@free.fr> Hi, There's an old problem between xfce4-mixer (panel plugin) and suspend. Suspending requires to release all file handles from mixer devices, and the usual way to do it implies to kill xfce4-mixer (something like fuser -k /dev/snd/control*). An idea to partially solve this problem would be to modify xfce4-mixer to make it close file handles between vc polls... another idea : fork the vc poller in a separate process and respawn it in case it dies.. Am I wrong ? do you know a more elegant solution ? Cheers JP From bjt23 at cornell.edu Fri May 9 20:50:29 2008 From: bjt23 at cornell.edu (Brian J. Tarricone) Date: Fri, 09 May 2008 11:50:29 -0700 Subject: mcs to xfconf migration Message-ID: <48249CF5.8030708@cornell.edu> Hey all, Over the past month or two, Stephan and I have been working to get Xfconf in shape for 4.6, and we're making some really good progress. I've started working on migrating settings from MCS to Xfconf, and I have a little bit of a dilemma as to how to make it all work. So far I have perl scripts (generally one per module; so xfdesktop would install one, xfwm4 would install another, etc.) that manually parse the MCS XML files (I think it's reasonable to require the XML::Parser perl module), and then use xfconf-query (our command-line tool to get and set Xfconf config properties) to migrate the settings. This seems to work well. Of course, I don't want people to have to run these manually, and I don't want the individual modules to have to check on startup for $XDG_CONFIG_HOME/xfce4/mcs_settings/foo.xml every single time and possibly initiate migration. One option I thought of is to use the autostart mechanism. Each module that installs a migration script can install an autostart file to the system autostart location. On first run, the migration script will get run. The last thing each script will do is copy the autostart file to that user's per-user autostart directory, but set Hidden=true in the copy so future startups cause the system-wide file to be ignored. This sounds decent to me, and avoids putting annoying migration code into the applications themselves (like we did for the xdg basedir migration for 4.2... code which I think we should remove for 4.6). It's possibly a little faster to put the code in the apps, since all it has to do is a stat() to see if it should do the migration, whereas the session manager has to parse .desktop files on startup each time. But I think the autostart method is a much cleaner way of doing it. Anybody have any thoughts? A better way of doing it? -brian From stephan at xfce.org Fri May 9 23:13:43 2008 From: stephan at xfce.org (Stephan Arts) Date: Fri, 9 May 2008 23:13:43 +0200 Subject: Adding libglade as a dep for libxfcegui4. Message-ID: <74b8614e0805091413t222834b4ue903417516df947f@mail.gmail.com> I have written a patch for libxfcegui4. Adding libglade as a hard-dep for libxfcegui4. Using glade for the settings-dialogs will reduce the programming-efford required to build the gui. When looking at the settings-dialogs for most of the core modules of xfce 4.4, they seems they don't get quite as much attention as the rest of xfce. They are under appreciated so to speak. Using glade for this in the future should help reduce this problem in the future. Because you don't (normally) spend your entire day modifying your settings, you usually do that a couple of times the first day. And maybe once or twice later-on. Using libglade to build the gui is not efford-free when compared to a hard-coded interface. And I wouldn't really use it for stuff which is used very often. But for settings-dialogs, I think it is an ideal solution. libxfcegui4 is equipped with a module and catalogue for libglade and glade. But when libglade is used for the settings-dialogs, it is going to be impossible to use the libxfcegui4-components without the installed module. What do you think? - Stephan -------------- next part -------------- A non-text attachment was scrubbed... Name: libxfcegui4_gladeui.diff Type: text/x-diff Size: 2441 bytes Desc: not available Url : http://foo-projects.org/pipermail/xfce4-dev/attachments/20080509/abc9e27e/libxfcegui4_gladeui.bin From enrico.troeger at uvena.de Sat May 10 09:50:42 2008 From: enrico.troeger at uvena.de (Enrico =?UTF-8?B?VHLDtmdlcg==?=) Date: Sat, 10 May 2008 09:50:42 +0200 Subject: Broken xfce4-about / Maybe bug in libxfce4util In-Reply-To: <47FBAC6A.8050902@cornell.edu> References: <20080408143412.1229017a.enrico.troeger@uvena.de> <47FBAC6A.8050902@cornell.edu> Message-ID: <20080510095042.dc1afad7.enrico.troeger@uvena.de> On Tue, 08 Apr 2008 10:33:30 -0700, "Brian J. Tarricone" wrote: > Enrico Tr?ger wrote: > > Hi all, > > > > I was just about writing a German localized version of the Info > > text in xfce4-about. While testing I noticed it isn't used at all. > > > > After reading the code to get an idea what's going wrong, I noticed > > something strange in xfce_localize_path_internal() > > (libxfce4util/trunk/libxfce4util/xfce-i18n.c:95). > > There is a check: > > > > if (G_LIKELY (lang != NULL && strchr (lang, '/') != NULL)) > > > > I don't understand why lang should contain a '/'. This is why it > > doesn't work for me. My locale is "de_DE.UTF-8". > > > > If I run xfce4-about with > > LANG=de_DE.UTF-8/ xfce4-about > > it works because the check for the '/' is TRUE and the localized > > version is used. But when are '/' are used in locales? I've never > > seen this before. > > > > Is this a bug or am I missing something? > > That's pretty strange... I think Benny wrote that code; maybe he can > shed some light on it. Just for the general "on the mailing list it get lost" phenomenon, I filed a bug report. http://bugzilla.xfce.org/show_bug.cgi?id=4071 There seems to be no component for libxfce4util or similar, so I filed it in "general". Regards, Enrico -- Get my GPG key from http://www.uvena.de/pub.asc -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://foo-projects.org/pipermail/xfce4-dev/attachments/20080510/0387b84f/attachment.bin From stephan at xfce.org Sat May 10 11:15:47 2008 From: stephan at xfce.org (Stephan Arts) Date: Sat, 10 May 2008 11:15:47 +0200 Subject: Fwd: [Xfce4-commits] commit patch to xfce4-panel In-Reply-To: <162800e10805100146k48223046j7fb2a0b55cf9d653@mail.gmail.com> References: <162800e10805100146k48223046j7fb2a0b55cf9d653@mail.gmail.com> Message-ID: <74b8614e0805100215i761966f4j704d8a85764710b@mail.gmail.com> Not quite the right mailing-list. - Stephan ---------- Forwarded message ---------- From: joy zhao Date: Sat, May 10, 2008 at 10:46 AM Subject: [Xfce4-commits] commit patch to xfce4-panel To: xfce4-commits at xfce.org hi, I'd commit a patch for xfce4-panel, however, I don't know whom exactly I should send this mail to . So I just send it to this address. If it's no t a proper way, can anyone kindly enough let me know ? Thanks! This patch is to add a show/hide button on panel, which, when clicked, will toggle panel's show/hide status, and for example, have panel hide to left corner or bottom corner. users can choose whether to have this button on panel in panel property dialog. The attachment is my patch. YanZhao _______________________________________________ Xfce4-commits mailing list Xfce4-commits at xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits -------------- next part -------------- A non-text attachment was scrubbed... Name: xfce4-panel-show-hidebutton.patch Type: text/x-patch Size: 42535 bytes Desc: not available Url : http://foo-projects.org/pipermail/xfce4-dev/attachments/20080510/5aaaaf0d/xfce4-panel-show-hidebutton-0001.bin From mmassonnet at gmail.com Sat May 10 13:32:44 2008 From: mmassonnet at gmail.com (Mike Massonnet) Date: Sat, 10 May 2008 13:32:44 +0200 Subject: [yanhwizhao@gmail.com: [Xfce4-commits] commit patch to xfce4-panel] Message-ID: <20080510113244.GA2635@failure.del> Forwarded to the xfce dev ml as it will reach more exposure. http://foo-projects.org/pipermail/xfce4-commits/2008-May/027207.html ----- Forwarded message from joy zhao ----- From: joy zhao To: xfce4-commits at xfce.org Subject: [Xfce4-commits] commit patch to xfce4-panel List-Id: Xfce4 SVN Commits list hi, I'd commit a patch for xfce4-panel, however, I don't know whom exactly I should send this mail to . So I just send it to this address. If it's no t a proper way, can anyone kindly enough let me know ? Thanks! This patch is to add a show/hide button on panel, which, when clicked, will toggle panel's show/hide status, and for example, have panel hide to left corner or bottom corner. users can choose whether to have this button on panel in panel property dialog. The attachment is my patch. YanZhao diff -uprN xfce4-panel/trunk/panel/panel.c xfce4-panel-new/trunk/panel/panel.c --- xfce4-panel/trunk/panel/panel.c 2008-05-10 16:14:04.000000000 +0800 +++ xfce4-panel-new/trunk/panel/panel.c 2008-05-10 16:15:53.000000000 +0800 @@ -58,7 +58,8 @@ enum PROP_AUTOHIDE, PROP_FULL_WIDTH, PROP_TRANSPARENCY, - PROP_ACTIVE_TRANS + PROP_ACTIVE_TRANS, + PROP_SHOW_HIDEBUTTON }; @@ -81,6 +82,9 @@ static void panel_size_request (GtkWidg static gboolean panel_button_pressed (GtkWidget *widget, GdkEventButton *ev); +/*hide button*/ + +static void panel_setup_widgets(Panel *panel); /* plugin menu */ static void panel_menu_deactivated (GtkWidget *item); @@ -214,6 +218,17 @@ panel_class_init (PanelClass * klass) DEFAULT_ACTIVE_TRANS, G_PARAM_READWRITE); g_object_class_install_property (object_class, PROP_ACTIVE_TRANS, pspec); + + pspec = g_param_spec_boolean ("show-hidebutton", + "show_hidebutton", + "whether show hide button on panel", + DEFAULT_SHOW_HIDEBUTTON, G_PARAM_READWRITE); + + g_object_class_install_property (object_class, PROP_SHOW_HIDEBUTTON, pspec); + + + + } static void @@ -234,11 +249,11 @@ panel_init (Panel * panel) priv->full_width = DEFAULT_FULL_WIDTH; priv->transparency = DEFAULT_TRANSPARENCY; priv->activetrans = DEFAULT_ACTIVE_TRANS; + priv->panel_state = DEFAULT_PANEL_STATE; + priv->show_hidebutton = DEFAULT_SHOW_HIDEBUTTON; - priv->itembar = xfce_itembar_new (GTK_ORIENTATION_HORIZONTAL); - gtk_widget_show (priv->itembar); - gtk_container_add (GTK_CONTAINER (panel), priv->itembar); - + panel_setup_widgets(panel); + panel_dnd_set_dest_name_and_widget (priv->itembar); panel_dnd_set_source_widget (priv->itembar); @@ -282,38 +297,41 @@ panel_get_property (GObject *object, PanelPrivate *priv = PANEL(object)->priv; switch (prop_id) - { - case PROP_SIZE: - g_value_set_int (value, priv->size); - break; - case PROP_MONITOR: - g_value_set_int (value, priv->monitor); - break; - case PROP_SCREEN_POSITION: - g_value_set_enum (value, priv->screen_position); - break; - case PROP_XOFFSET: - g_value_set_int (value, priv->xoffset); - break; - case PROP_YOFFSET: - g_value_set_int (value, priv->yoffset); - break; - case PROP_AUTOHIDE: - g_value_set_boolean (value, priv->autohide); - break; - case PROP_FULL_WIDTH: - g_value_set_int (value, priv->full_width); - break; - case PROP_TRANSPARENCY: - g_value_set_int (value, priv->transparency); - break; - case PROP_ACTIVE_TRANS: - g_value_set_boolean (value, priv->activetrans); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } + { + case PROP_SIZE: + g_value_set_int (value, priv->size); + break; + case PROP_MONITOR: + g_value_set_int (value, priv->monitor); + break; + case PROP_SCREEN_POSITION: + g_value_set_enum (value, priv->screen_position); + break; + case PROP_XOFFSET: + g_value_set_int (value, priv->xoffset); + break; + case PROP_YOFFSET: + g_value_set_int (value, priv->yoffset); + break; + case PROP_AUTOHIDE: + g_value_set_boolean (value, priv->autohide); + break; + case PROP_FULL_WIDTH: + g_value_set_int (value, priv->full_width); + break; + case PROP_TRANSPARENCY: + g_value_set_int (value, priv->transparency); + break; + case PROP_ACTIVE_TRANS: + g_value_set_boolean (value, priv->activetrans); + break; + case PROP_SHOW_HIDEBUTTON: + g_value_set_boolean (value, priv->show_hidebutton); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } } static void @@ -353,12 +371,205 @@ panel_set_property (GObject *object case PROP_ACTIVE_TRANS: panel_set_activetrans (panel, g_value_get_boolean (value)); break; + case PROP_SHOW_HIDEBUTTON: + panel_set_show_hidebutton (panel, g_value_get_boolean (value)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } } +static void +panel_unhide (Panel *panel) +{ + g_return_if_fail (PANEL_IS_PANEL (panel)); + PanelPrivate *priv = panel->priv; + + if (priv->panel_state == PANEL_STATE_NORMAL) + return; + priv->panel_state = PANEL_STATE_NORMAL; + panel_update_hide_buttons (panel); + gtk_widget_queue_resize (GTK_WIDGET (panel)); +} + + +static void +panel_hide (Panel *panel, gboolean auto_hide, GtkDirectionType direction) +{ + g_return_if_fail (PANEL_IS_PANEL (panel)); + PanelPrivate *priv = panel->priv; + + if (priv->panel_state != PANEL_STATE_NORMAL) + return; + + if (auto_hide) + priv->panel_state = PANEL_STATE_AUTO_HIDDEN; + else { + if (direction == -1) { + if (xfce_screen_position_is_horizontal(priv->screen_position)) + direction = GTK_DIR_RIGHT; + else + direction = GTK_DIR_DOWN; + } + switch (direction) { + case GTK_DIR_DOWN: + g_return_if_fail (!xfce_screen_position_is_horizontal(priv->screen_position)); + priv->panel_state = PANEL_STATE_HIDDEN_DOWN; + break; + case GTK_DIR_LEFT: + g_return_if_fail (xfce_screen_position_is_horizontal(priv->screen_position)); + priv->panel_state = PANEL_STATE_HIDDEN_LEFT; + break; + default: + g_assert_not_reached (); + break; + } + panel_update_hide_buttons (panel); + } + gtk_widget_queue_resize (GTK_WIDGET (panel)); +} + +static void +panel_hide_button_clicked (Panel *panel, GtkButton *button) +{ + GtkArrowType arrow_type; + gboolean ltr; + PanelPrivate *priv = panel->priv; + + ltr = gtk_widget_get_direction (GTK_WIDGET (panel)) == GTK_TEXT_DIR_LTR; + arrow_type = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "arrow-type")); + if(priv->panel_state == PANEL_STATE_NORMAL){ + GtkDirectionType direction = -1; + switch (arrow_type) { + case GTK_ARROW_UP: + direction = GTK_DIR_UP; + break; + case GTK_ARROW_DOWN: + direction = GTK_DIR_DOWN; + break; + case GTK_ARROW_LEFT: + direction = ltr ? GTK_DIR_LEFT : GTK_DIR_RIGHT; + break; + case GTK_ARROW_RIGHT: + direction = ltr ? GTK_DIR_RIGHT : GTK_DIR_LEFT; + break; + default: + g_assert_not_reached (); + break; + } + panel_hide (panel, FALSE, direction); + }else + panel_unhide (panel); +} + +static GtkWidget * +panel_add_hide_button (Panel *panel, + GtkArrowType arrow_type, + int left_attach, + int right_attach, + int top_attach, + int bottom_attach) +{ + PanelPrivate *priv; + + priv = panel->priv = G_TYPE_INSTANCE_GET_PRIVATE (panel, + PANEL_TYPE_PANEL, + PanelPrivate); + GtkWidget *button; + GtkWidget *arrow; + int arrow_size; + + button = gtk_button_new (); + GTK_WIDGET_UNSET_FLAGS (button, GTK_CAN_DEFAULT); + + arrow_size = DEFAULT_HIDEBUTTON_SIZE; + + switch (arrow_type) { + case GTK_ARROW_UP: + gtk_widget_set_size_request (button, -1, arrow_size); + break; + case GTK_ARROW_DOWN: + gtk_widget_set_size_request (button, -1, arrow_size); + break; + case GTK_ARROW_LEFT: + gtk_widget_set_size_request (button, arrow_size, -1); + break; + case GTK_ARROW_RIGHT: + gtk_widget_set_size_request (button, arrow_size, -1); + break; + default: + g_assert_not_reached (); + break; + } + arrow = gtk_arrow_new (arrow_type, GTK_SHADOW_NONE); + gtk_misc_set_padding (GTK_MISC (arrow), 0, 0); + gtk_container_add (GTK_CONTAINER (button), arrow); + gtk_widget_show (arrow); + g_object_set_data (G_OBJECT (button), + "arrow-type", + GINT_TO_POINTER (arrow_type)); + g_signal_connect_swapped (button, "clicked", + G_CALLBACK (panel_hide_button_clicked), panel); + gtk_table_attach (GTK_TABLE (priv->table), + button, + left_attach, + right_attach, + top_attach, + bottom_attach, + GTK_FILL, + GTK_FILL, + 0, + 0); + + return button; +} + +static void +panel_setup_widgets(Panel *panel) +{ + PanelPrivate *priv; + + priv = panel->priv = G_TYPE_INSTANCE_GET_PRIVATE (panel, + PANEL_TYPE_PANEL, + PanelPrivate); + priv->table = gtk_table_new(3, 3, FALSE); + + priv->hide_button_left = + panel_add_hide_button (panel, GTK_ARROW_LEFT, 0, 1, 1, 2); + + priv->hide_button_right = + panel_add_hide_button (panel, GTK_ARROW_RIGHT, 2, 3, 1, 2); + + priv->hide_button_top = + panel_add_hide_button (panel, GTK_ARROW_UP, 1, 2, 0, 1); + + priv->hide_button_bottom = + panel_add_hide_button (panel, GTK_ARROW_DOWN, 1, 2, 2, 3); + + if(priv->show_hidebutton){ + if (xfce_screen_position_is_horizontal(priv->screen_position)) { + gtk_widget_show (priv->hide_button_left); + } else { + gtk_widget_show (priv->hide_button_bottom); + } + } + + priv->itembar = xfce_itembar_new (GTK_ORIENTATION_HORIZONTAL); + gtk_table_attach (GTK_TABLE (priv->table), + GTK_WIDGET (priv->itembar), + 1, 2, + 1, 2, + GTK_FILL | GTK_EXPAND | GTK_SHRINK, + GTK_FILL | GTK_EXPAND | GTK_SHRINK, + 0, 0); + gtk_widget_show (priv->itembar); + + gtk_container_add (GTK_CONTAINER (panel), priv->table); + gtk_widget_show (priv->table); + +} + static void panel_size_request (GtkWidget *widget, GtkRequisition *requisition) diff -uprN xfce4-panel/trunk/panel/panel-config.c xfce4-panel-new/trunk/panel/panel-config.c --- xfce4-panel/trunk/panel/panel-config.c 2008-05-10 16:14:04.000000000 +0800 +++ xfce4-panel-new/trunk/panel/panel-config.c 2008-05-10 16:15:53.000000000 +0800 @@ -215,6 +215,7 @@ struct _ConfigParser guint autohide : 1; gint transparency; guint activetrans : 1; + guint show_hidebutton : 1; }; static void @@ -233,6 +234,7 @@ init_properties (ConfigParser *parser) parser->autohide = DEFAULT_AUTOHIDE; parser->transparency = DEFAULT_TRANSPARENCY; parser->activetrans = DEFAULT_ACTIVE_TRANS; + parser->show_hidebutton = FALSE; } static void @@ -240,51 +242,56 @@ config_set_property (ConfigParser *parse const gchar *name, const gchar *value) { - g_return_if_fail (name != NULL && value != NULL); + g_return_if_fail (name != NULL && value != NULL); - parser->properties_set = TRUE; + parser->properties_set = TRUE; + + if (strcmp (name, "size") == 0) + { + parser->size = (gint) strtol (value, NULL, 0); + } + else if (strcmp (name, "monitor") == 0) + { + parser->monitor = (gint) strtol (value, NULL, 0); + parser->monitor_set = TRUE; + } + else if (strcmp (name, "screen-position") == 0) + { + parser->screen_position = (gint) strtol (value, NULL, 0); + } + else if (strcmp (name, "fullwidth") == 0) + { + parser->full_width = ((gint) strtol (value, NULL, 0)); + } + else if (strcmp (name, "xoffset") == 0) + { + parser->xoffset = (gint) strtol (value, NULL, 0); + } + else if (strcmp (name, "yoffset") == 0) + { + parser->yoffset = (gint) strtol (value, NULL, 0); + } + else if (strcmp (name, "handlestyle") == 0) + { + parser->handle_style = (gint) strtol (value, NULL, 0); + } + else if (strcmp (name, "autohide") == 0) + { + parser->autohide = ((gint) strtol (value, NULL, 0) == 1); + } + else if (strcmp (name, "transparency") == 0) + { + parser->transparency = (gint) strtol (value, NULL, 0); + } + else if (strcmp (name, "activetrans") == 0) + { + parser->activetrans = ((gint) strtol (value, NULL, 0) == 1); + } + else if (strcmp (name, "show-hidebutton") == 0) + { + parser->show_hidebutton = ((int) strtol (value, NULL, 0) == 1); + } - if (strcmp (name, "size") == 0) - { - parser->size = (gint) strtol (value, NULL, 0); - } - else if (strcmp (name, "monitor") == 0) - { - parser->monitor = (gint) strtol (value, NULL, 0); - parser->monitor_set = TRUE; - } - else if (strcmp (name, "screen-position") == 0) - { - parser->screen_position = (gint) strtol (value, NULL, 0); - } - else if (strcmp (name, "fullwidth") == 0) - { - parser->full_width = ((gint) strtol (value, NULL, 0)); - } - else if (strcmp (name, "xoffset") == 0) - { - parser->xoffset = (gint) strtol (value, NULL, 0); - } - else if (strcmp (name, "yoffset") == 0) - { - parser->yoffset = (gint) strtol (value, NULL, 0); - } - else if (strcmp (name, "handlestyle") == 0) - { - parser->handle_style = (gint) strtol (value, NULL, 0); - } - else if (strcmp (name, "autohide") == 0) - { - parser->autohide = ((gint) strtol (value, NULL, 0) == 1); - } - else if (strcmp (name, "transparency") == 0) - { - parser->transparency = (gint) strtol (value, NULL, 0); - } - else if (strcmp (name, "activetrans") == 0) - { - parser->activetrans = ((gint) strtol (value, NULL, 0) == 1); - } } static void @@ -452,6 +459,7 @@ end_element_handler (GMarkupParseContext "autohide", parser->autohide, "transparency", parser->transparency, "activetrans", parser->activetrans, + "show-hidebutton", parser->show_hidebutton, NULL); } MARK(" ++ end properties"); @@ -659,6 +667,8 @@ config_save_to_file (GPtrArray *array, gint transparency = 0; gboolean autohide = FALSE; gboolean activetrans = FALSE; + gboolean show_hidebutton = FALSE; + Panel *panel; GList *configlist, *l; XfcePanelItem *item; @@ -678,6 +688,7 @@ config_save_to_file (GPtrArray *array, "autohide", &autohide, "transparency", &transparency, "activetrans", &activetrans, + "show-hidebutton", &show_hidebutton, NULL); /* grouping */ @@ -715,6 +726,9 @@ config_save_to_file (GPtrArray *array, fprintf (fp, "\t\t\t\n", activetrans); + fprintf (fp, "\t\t\t\n", + show_hidebutton); + /* grouping */ fprintf (fp, "\t\t\n" "\t\t\n"); diff -uprN xfce4-panel/trunk/panel/panel-dialogs.c xfce4-panel-new/trunk/panel/panel-dialogs.c --- xfce4-panel/trunk/panel/panel-dialogs.c 2008-05-10 16:14:04.000000000 +0800 +++ xfce4-panel-new/trunk/panel/panel-dialogs.c 2008-05-10 16:15:54.000000000 +0800 @@ -102,6 +102,7 @@ struct _PanelManagerDialog GtkWidget *fullwidth; gint n_width_items; GtkWidget *autohide; + GtkWidget *show_hidebutton; GtkWidget *floating_box; GtkWidget *orientation; @@ -734,6 +735,9 @@ update_widgets (PanelManagerDialog *pmd) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pmd->autohide), priv->autohide); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (pmd->show_hidebutton), + priv->show_hidebutton); + /* position */ if (!xfce_screen_position_is_floating (priv->screen_position)) { @@ -937,6 +941,15 @@ autohide_changed (GtkToggleButton *tb } static void +show_hidebutton_changed (GtkToggleButton *tb, PanelManagerDialog *pmd) +{ + if (pmd->updating) + return; + panel_set_show_hidebutton (pmd->panel, gtk_toggle_button_get_active (tb)); +} + + +static void orientation_changed (GtkComboBox *box, PanelManagerDialog *pmd) { @@ -993,227 +1006,237 @@ static void add_position_options (GtkBox *box, PanelManagerDialog *pmd) { - GtkWidget *frame, *vbox, *vbox2, *hbox, *table, *align, *label, *sep; - GtkSizeGroup *sg; - gint i; - - /* position */ - frame = xfce_create_framebox (_("Position"), &align); - gtk_widget_show (frame); - gtk_box_pack_start (box, frame, FALSE, FALSE, 0); - - vbox2 = gtk_vbox_new (FALSE, BORDER); - gtk_widget_show (vbox2); - gtk_container_add (GTK_CONTAINER (align), vbox2); - - /* type */ - hbox = gtk_hbox_new (FALSE, BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox2), hbox, TRUE, TRUE, 0); - - pmd->fixed = - gtk_radio_button_new_with_label (NULL, _("Fixed Position")); - gtk_widget_show (pmd->fixed); - gtk_box_pack_start (GTK_BOX (hbox), pmd->fixed, FALSE, FALSE, 0); - - pmd->floating = - gtk_radio_button_new_with_label_from_widget ( - GTK_RADIO_BUTTON (pmd->fixed), _("Freely Moveable")); - gtk_widget_show (pmd->floating); - gtk_box_pack_start (GTK_BOX (hbox), pmd->floating, FALSE, FALSE, 0); - - g_signal_connect (G_OBJECT (pmd->fixed), "toggled", - G_CALLBACK (type_changed), pmd); - - g_signal_connect (G_OBJECT (pmd->floating), "toggled", - G_CALLBACK (type_changed), pmd); - - sep = gtk_hseparator_new (); - gtk_widget_show (sep); - gtk_box_pack_start (GTK_BOX (vbox2), sep, FALSE, FALSE, 0); - - /* fixed */ - pmd->fixed_box = hbox = gtk_hbox_new (FALSE, BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox2), hbox, TRUE, TRUE, 0); - - /* fixed: position */ - vbox = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox); - gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0); - - table = gtk_table_new (5, 5, FALSE); - gtk_widget_show (table); - gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0); - - align = gtk_alignment_new (0, 0, 0, 0); - gtk_widget_show (align); - gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0); - - for (i = 0; i < 12; ++i) - { - pmd->screen_position[i] = gtk_toggle_button_new (); - gtk_widget_show (pmd->screen_position[i]); - - if (i <= 2 || i >= 9) - gtk_widget_set_size_request (pmd->screen_position[i], 30, 15); - else - gtk_widget_set_size_request (pmd->screen_position[i], 15, 25); - - g_signal_connect (G_OBJECT (pmd->screen_position[i]), "button-press-event", - G_CALLBACK (screen_position_pressed), pmd); - - g_signal_connect (G_OBJECT (pmd->screen_position[i]), "key-press-event", - G_CALLBACK (screen_position_pressed), pmd); - } - - /* fixed:postion:top */ - gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[0], - 1, 2, 0, 1); - - gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[1], - 2, 3, 0, 1); - - gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[2], - 3, 4, 0, 1); - - /* fixed:postion:left */ - gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[3], - 0, 1, 1, 2); - - gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[4], - 0, 1, 2, 3); - - gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[5], - 0, 1, 3, 4); - - /* fixed:postion:right */ - gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[6], - 4, 5, 1, 2); - - gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[7], - 4, 5, 2, 3); - - gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[8], - 4, 5, 3, 4); - - /* fixed:postion:bottom */ - gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[9], - 1, 2, 4, 5); - - gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[10], - 2, 3, 4, 5); - - gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[11], - 3, 4, 4, 5); - - /* fixed:full width */ - vbox = gtk_vbox_new (FALSE, BORDER); - gtk_widget_show (vbox); - gtk_box_pack_start (GTK_BOX (pmd->fixed_box), vbox, TRUE, TRUE, 0); - - pmd->fullwidth = gtk_combo_box_new_text (); - gtk_widget_show (pmd->fullwidth); - gtk_box_pack_start (GTK_BOX (vbox), pmd->fullwidth, FALSE, FALSE, 0); - - if (panel_is_horizontal (pmd->panel)) - { - gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->fullwidth), _("Normal Width")); - gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->fullwidth), _("Full Width")); - } - else - { - gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->fullwidth), _("Normal Height")); - gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->fullwidth), _("Full Height")); - } - - - pmd->n_width_items = 2; - if (can_span_monitors (pmd->panel)) - { - pmd->n_width_items = 3; - gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->fullwidth), - _("Span Monitors")); - } - - g_signal_connect (G_OBJECT (pmd->fullwidth), "changed", - G_CALLBACK (fullwidth_changed), pmd); - - /* fixed:autohide */ - pmd->autohide = - gtk_check_button_new_with_mnemonic (_("Auto_hide")); - gtk_widget_show (pmd->autohide); - gtk_box_pack_start (GTK_BOX (vbox), pmd->autohide, FALSE, FALSE, 0); - - g_signal_connect (G_OBJECT (pmd->autohide), "toggled", - G_CALLBACK (autohide_changed), pmd); - - /* floating */ - pmd->floating_box = vbox = gtk_vbox_new (FALSE, BORDER); - /* don't show by default */ - gtk_box_pack_start (GTK_BOX (vbox2), vbox, TRUE, TRUE, 0); - - sg = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); - - hbox = gtk_hbox_new (FALSE, BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); - - label = gtk_label_new (_("Orientation:")); - gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); - gtk_widget_show (label); - gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); - - gtk_size_group_add_widget (sg, label); - - pmd->orientation = gtk_combo_box_new_text (); - gtk_widget_show (pmd->orientation); - gtk_box_pack_start (GTK_BOX (hbox), pmd->orientation, TRUE, TRUE, 0); - - gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->orientation), - _("Horizontal")); - gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->orientation), - _("Vertical")); - - g_signal_connect (G_OBJECT (pmd->orientation), "changed", - G_CALLBACK (orientation_changed), pmd); - - hbox = gtk_hbox_new (FALSE, BORDER); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); - - label = gtk_label_new (_("Handle:")); - gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); - gtk_widget_show (label); - gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); - - gtk_size_group_add_widget (sg, label); - - pmd->handle_style = gtk_combo_box_new_text (); - gtk_widget_show (pmd->handle_style); - gtk_box_pack_start (GTK_BOX (hbox), pmd->handle_style, TRUE, TRUE, 0); - - gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->handle_style), - _("At both sides")); - if (panel_is_horizontal (pmd->panel)) - { - gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->handle_style), - _("Left")); - gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->handle_style), - _("Right")); - } - else - { - gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->handle_style), - _("Top")); - gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->handle_style), - _("Bottom")); - } + GtkWidget *frame, *vbox, *vbox2, *hbox, *table, *align, *label, *sep; + GtkSizeGroup *sg; + gint i; + + /* position */ + frame = xfce_create_framebox (_("Position"), &align); + gtk_widget_show (frame); + gtk_box_pack_start (box, frame, FALSE, FALSE, 0); + + vbox2 = gtk_vbox_new (FALSE, BORDER); + gtk_widget_show (vbox2); + gtk_container_add (GTK_CONTAINER (align), vbox2); + + /* type */ + hbox = gtk_hbox_new (FALSE, BORDER); + gtk_widget_show (hbox); + gtk_box_pack_start (GTK_BOX (vbox2), hbox, TRUE, TRUE, 0); + + pmd->fixed = + gtk_radio_button_new_with_label (NULL, _("Fixed Position")); + gtk_widget_show (pmd->fixed); + gtk_box_pack_start (GTK_BOX (hbox), pmd->fixed, FALSE, FALSE, 0); + + pmd->floating = + gtk_radio_button_new_with_label_from_widget ( + GTK_RADIO_BUTTON (pmd->fixed), _("Freely Moveable")); + gtk_widget_show (pmd->floating); + gtk_box_pack_start (GTK_BOX (hbox), pmd->floating, FALSE, FALSE, 0); + + g_signal_connect (G_OBJECT (pmd->fixed), "toggled", + G_CALLBACK (type_changed), pmd); + + g_signal_connect (G_OBJECT (pmd->floating), "toggled", + G_CALLBACK (type_changed), pmd); + + sep = gtk_hseparator_new (); + gtk_widget_show (sep); + gtk_box_pack_start (GTK_BOX (vbox2), sep, FALSE, FALSE, 0); + + /* fixed */ + pmd->fixed_box = hbox = gtk_hbox_new (FALSE, BORDER); + gtk_widget_show (hbox); + gtk_box_pack_start (GTK_BOX (vbox2), hbox, TRUE, TRUE, 0); + + /* fixed: position */ + vbox = gtk_vbox_new (FALSE, 0); + gtk_widget_show (vbox); + gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0); + + table = gtk_table_new (5, 5, FALSE); + gtk_widget_show (table); + gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, FALSE, 0); + + align = gtk_alignment_new (0, 0, 0, 0); + gtk_widget_show (align); + gtk_box_pack_start (GTK_BOX (vbox), align, TRUE, TRUE, 0); + + for (i = 0; i < 12; ++i) + { + pmd->screen_position[i] = gtk_toggle_button_new (); + gtk_widget_show (pmd->screen_position[i]); + + if (i <= 2 || i >= 9) + gtk_widget_set_size_request (pmd->screen_position[i], 30, 15); + else + gtk_widget_set_size_request (pmd->screen_position[i], 15, 25); + + g_signal_connect (G_OBJECT (pmd->screen_position[i]), "button-press-event", + G_CALLBACK (screen_position_pressed), pmd); + + g_signal_connect (G_OBJECT (pmd->screen_position[i]), "key-press-event", + G_CALLBACK (screen_position_pressed), pmd); + } + + /* fixed:postion:top */ + gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[0], + 1, 2, 0, 1); + + gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[1], + 2, 3, 0, 1); + + gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[2], + 3, 4, 0, 1); + + /* fixed:postion:left */ + gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[3], + 0, 1, 1, 2); + + gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[4], + 0, 1, 2, 3); + + gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[5], + 0, 1, 3, 4); + + /* fixed:postion:right */ + gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[6], + 4, 5, 1, 2); + + gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[7], + 4, 5, 2, 3); + + gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[8], + 4, 5, 3, 4); + + /* fixed:postion:bottom */ + gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[9], + 1, 2, 4, 5); + + gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[10], + 2, 3, 4, 5); + + gtk_table_attach_defaults (GTK_TABLE (table), pmd->screen_position[11], + 3, 4, 4, 5); + + /* fixed:full width */ + vbox = gtk_vbox_new (FALSE, BORDER); + gtk_widget_show (vbox); + gtk_box_pack_start (GTK_BOX (pmd->fixed_box), vbox, TRUE, TRUE, 0); + + pmd->fullwidth = gtk_combo_box_new_text (); + gtk_widget_show (pmd->fullwidth); + gtk_box_pack_start (GTK_BOX (vbox), pmd->fullwidth, FALSE, FALSE, 0); + + if (panel_is_horizontal (pmd->panel)) + { + gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->fullwidth), _("Normal Width")); + gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->fullwidth), _("Full Width")); + } + else + { + gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->fullwidth), _("Normal Height")); + gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->fullwidth), _("Full Height")); + } + + + pmd->n_width_items = 2; + if (can_span_monitors (pmd->panel)) + { + pmd->n_width_items = 3; + gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->fullwidth), + _("Span Monitors")); + } + + g_signal_connect (G_OBJECT (pmd->fullwidth), "changed", + G_CALLBACK (fullwidth_changed), pmd); + + /* fixed:autohide */ + pmd->autohide = + gtk_check_button_new_with_mnemonic (_("Auto_hide")); + gtk_widget_show (pmd->autohide); + gtk_box_pack_start (GTK_BOX (vbox), pmd->autohide, FALSE, FALSE, 0); + + g_signal_connect (G_OBJECT (pmd->autohide), "toggled", + G_CALLBACK (autohide_changed), pmd); + + /* fixed:show hide button*/ + pmd->show_hidebutton = + gtk_check_button_new_with_mnemonic (_("Show_hide_Button")); + gtk_widget_show (pmd->show_hidebutton); + gtk_box_pack_start (GTK_BOX (vbox), pmd->show_hidebutton, FALSE, FALSE, 0); + + g_signal_connect (pmd->show_hidebutton, "toggled", + G_CALLBACK (show_hidebutton_changed), pmd); + + + /* floating */ + pmd->floating_box = vbox = gtk_vbox_new (FALSE, BORDER); + /* don't show by default */ + gtk_box_pack_start (GTK_BOX (vbox2), vbox, TRUE, TRUE, 0); + + sg = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); + + hbox = gtk_hbox_new (FALSE, BORDER); + gtk_widget_show (hbox); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + + label = gtk_label_new (_("Orientation:")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_widget_show (label); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); + + gtk_size_group_add_widget (sg, label); + + pmd->orientation = gtk_combo_box_new_text (); + gtk_widget_show (pmd->orientation); + gtk_box_pack_start (GTK_BOX (hbox), pmd->orientation, TRUE, TRUE, 0); + + gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->orientation), + _("Horizontal")); + gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->orientation), + _("Vertical")); + + g_signal_connect (G_OBJECT (pmd->orientation), "changed", + G_CALLBACK (orientation_changed), pmd); + + hbox = gtk_hbox_new (FALSE, BORDER); + gtk_widget_show (hbox); + gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); + + label = gtk_label_new (_("Handle:")); + gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5); + gtk_widget_show (label); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); + + gtk_size_group_add_widget (sg, label); + + pmd->handle_style = gtk_combo_box_new_text (); + gtk_widget_show (pmd->handle_style); + gtk_box_pack_start (GTK_BOX (hbox), pmd->handle_style, TRUE, TRUE, 0); + + gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->handle_style), + _("At both sides")); + if (panel_is_horizontal (pmd->panel)) + { + gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->handle_style), + _("Left")); + gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->handle_style), + _("Right")); + } + else + { + gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->handle_style), + _("Top")); + gtk_combo_box_append_text (GTK_COMBO_BOX (pmd->handle_style), + _("Bottom")); + } - g_signal_connect (G_OBJECT (pmd->handle_style), "changed", - G_CALLBACK (handle_style_changed), pmd); + g_signal_connect (G_OBJECT (pmd->handle_style), "changed", + G_CALLBACK (handle_style_changed), pmd); - g_object_unref (G_OBJECT (sg)); + g_object_unref (G_OBJECT (sg)); } /* monitors */ diff -uprN xfce4-panel/trunk/panel/panel-private.h xfce4-panel-new/trunk/panel/panel-private.h --- xfce4-panel/trunk/panel/panel-private.h 2008-05-10 16:14:04.000000000 +0800 +++ xfce4-panel-new/trunk/panel/panel-private.h 2008-05-10 16:15:54.000000000 +0800 @@ -36,9 +36,24 @@ #define DEFAULT_FULL_WIDTH XFCE_PANEL_NORMAL_WIDTH #define DEFAULT_TRANSPARENCY 20 #define DEFAULT_ACTIVE_TRANS FALSE +#define DEFAULT_SHOW_HIDEBUTTON FALSE +#define DEFAULT_HIDEBUTTON_SIZE 24 +#define DEFAULT_PANEL_STATE PANEL_STATE_NORMAL + #define PANEL_GET_PRIVATE(o) (PANEL(o)->priv) +typedef enum { + PANEL_STATE_NORMAL = 0, /* not hidden state*/ + PANEL_STATE_AUTO_HIDDEN = 1, + PANEL_STATE_HIDDEN_UP = 2, /* hidden to the top corner, not used at this time*/ + PANEL_STATE_HIDDEN_DOWN = 3, /* hidden to the bottom corner */ + PANEL_STATE_HIDDEN_LEFT = 4, /* hidden to the left corner */ + PANEL_STATE_HIDDEN_RIGHT = 5 /* hidden to the right corner, not used at this time */ +} +XfcePanelState; + + typedef struct _PanelPrivate PanelPrivate; typedef enum @@ -51,31 +66,40 @@ XfcePanelWidthType; struct _PanelPrivate { - GtkWidget *itembar; - GtkWidget *menu; - - gint size; - gint monitor; - XfceScreenPosition screen_position; - gint xoffset; - gint yoffset; - XfcePanelWidthType full_width; - gint transparency; - - guint opacity; - guint saved_opacity; - - gint block_autohide; - gint hide_timeout; - gint unhide_timeout; - - /* booleans */ - guint autohide : 1; - guint activetrans : 1; - guint hidden : 1; - guint edit_mode : 1; + GtkWidget *table; + GtkWidget *itembar; + GtkWidget *hide_button_left; + GtkWidget *hide_button_right; + GtkWidget *hide_button_bottom; + GtkWidget *hide_button_top; + GtkWidget *menu; + + gint size; + gint monitor; + XfceScreenPosition screen_position; + gint xoffset; + gint yoffset; + XfcePanelWidthType full_width; + gint transparency; + + guint opacity; + guint saved_opacity; + + XfcePanelState panel_state; + gboolean show_hidebutton; + + + gint block_autohide; + gint hide_timeout; + gint unhide_timeout; + + /* booleans */ + guint autohide : 1; + guint activetrans : 1; + guint hidden : 1; + guint edit_mode : 1; - gulong struts[12]; + gulong struts[12]; }; #endif /* !__PANEL_PRIVATE_H__ */ diff -uprN xfce4-panel/trunk/panel/panel-properties.c xfce4-panel-new/trunk/panel/panel-properties.c --- xfce4-panel/trunk/panel/panel-properties.c 2008-05-10 16:14:04.000000000 +0800 +++ xfce4-panel-new/trunk/panel/panel-properties.c 2008-05-10 16:15:55.000000000 +0800 @@ -72,6 +72,46 @@ static void panel_leave /* moving and resizing */ + static void + _calculate_coordinates_after_hide (Panel *panel, + GdkRectangle *screen, /* monitor geometry */ + int width, + int height, + int *x, + int *y) +{ + PanelPrivate *priv = panel->priv; + XfcePanelState panel_state = priv->panel_state; + + gint hide_button_width, hide_button_height; + + switch (panel_state) + { + case PANEL_STATE_HIDDEN_LEFT: + gtk_widget_get_size_request (priv->hide_button_left, + &hide_button_width, + &hide_button_height); + *x = screen->x -width + hide_button_width + + ((priv->full_width != XFCE_PANEL_FULL_WIDTH)?GTK_WIDGET(panel)->style->xthickness:0); + break; + + case PANEL_STATE_HIDDEN_DOWN: + gtk_widget_get_size_request (priv->hide_button_bottom, + &hide_button_width, + &hide_button_height); + *y = screen->y + screen->height - hide_button_height - + ((priv->full_width != XFCE_PANEL_FULL_WIDTH) ? GTK_WIDGET(panel)->style->ythickness : 0); + break; + case PANEL_STATE_HIDDEN_UP: + case PANEL_STATE_HIDDEN_RIGHT: + /*not used at this time*/ + break; + default: + break; + } +} + + static void _calculate_coordinates (XfceScreenPosition position, /* screen position */ GdkRectangle *screen, /* monitor geometry */ @@ -285,7 +325,8 @@ _set_struts (Panel *panel, return; if (!priv->autohide && - !xfce_screen_position_is_floating (priv->screen_position)) + !xfce_screen_position_is_floating (priv->screen_position) && + (priv->panel_state == PANEL_STATE_NORMAL )) { if (xfce_screen_position_is_left (priv->screen_position)) { @@ -483,32 +524,50 @@ panel_resize_function (XfcePanelWindow * xmon = panel_app_get_monitor (priv->monitor); if (priv->full_width < XFCE_PANEL_SPAN_MONITORS) - { - _calculate_coordinates (priv->screen_position, - &(xmon->geometry), - alloc_new->width, - alloc_new->height, - x, y); - - priv->xoffset = *x - xmon->geometry.x; - priv->yoffset = *y - xmon->geometry.y; - } + { + if(priv->panel_state == PANEL_STATE_NORMAL) + _calculate_coordinates (priv->screen_position, + &(xmon->geometry), + alloc_new->width, + alloc_new->height, + x, y); + else + _calculate_coordinates_after_hide (panel, + &(xmon->geometry), + alloc_new->width, + alloc_new->height, + x, + y); + + priv->xoffset = *x - xmon->geometry.x; + priv->yoffset = *y - xmon->geometry.y; + } else - { - rect.x = 0; - rect.y = 0; - rect.width = gdk_screen_get_width (xmon->screen); - rect.height = gdk_screen_get_height (xmon->screen); - - _calculate_coordinates (priv->screen_position, - &rect, - alloc_new->width, - alloc_new->height, - x, y); - - priv->xoffset = *x; - priv->yoffset = *y; - } + { + rect.x = 0; + rect.y = 0; + rect.width = gdk_screen_get_width (xmon->screen); + rect.height = gdk_screen_get_height (xmon->screen); + + + if(priv->panel_state == PANEL_STATE_NORMAL) + _calculate_coordinates (priv->screen_position, + &rect, + alloc_new->width, + alloc_new->height, + x, y); + else + _calculate_coordinates_after_hide (panel, + &rect, + alloc_new->width, + alloc_new->height, + x, + y); + + + priv->xoffset = *x; + priv->yoffset = *y; + } _set_struts (panel, xmon, *x, *y, alloc_new->width, alloc_new->height); } @@ -590,6 +649,43 @@ panel_set_position (Panel * gtk_window_move (GTK_WINDOW (panel), x, y); _set_struts (panel, xmon, x, y, req.width, req.height); + panel_update_hide_buttons(panel); +} + +void panel_update_hide_buttons(Panel *panel) +{ + PanelPrivate *priv = panel->priv; + if((xfce_screen_position_is_floating (priv->screen_position))||(!priv->show_hidebutton)){ + gtk_widget_hide (priv->hide_button_bottom); + gtk_widget_hide (priv->hide_button_left); + gtk_widget_hide (priv->hide_button_top); + }else + switch(priv->panel_state){ + case PANEL_STATE_NORMAL: + if (xfce_screen_position_is_horizontal(priv->screen_position)) { + gtk_widget_show (priv->hide_button_left); + gtk_widget_hide (priv->hide_button_right); + gtk_widget_hide (priv->hide_button_bottom); + gtk_widget_hide (priv->hide_button_top); + } else { + gtk_widget_show (priv->hide_button_bottom); + gtk_widget_hide (priv->hide_button_top); + gtk_widget_hide (priv->hide_button_left); + } + break; + case PANEL_STATE_HIDDEN_LEFT: + gtk_widget_hide (priv->hide_button_left); + gtk_widget_show (priv->hide_button_right); + gtk_widget_hide (priv->hide_button_bottom); + gtk_widget_hide (priv->hide_button_top); + break; + case PANEL_STATE_HIDDEN_DOWN: + gtk_widget_show (priv->hide_button_top); + gtk_widget_hide (priv->hide_button_bottom); + gtk_widget_hide (priv->hide_button_left); + default: + break; + } } /* screen size */ @@ -1341,6 +1437,30 @@ panel_get_monitor (Panel *panel) } void +panel_set_show_hidebutton(Panel *panel, + gboolean show_hidebutton) +{ + PanelPrivate *priv = panel->priv; + if(show_hidebutton != priv->show_hidebutton) + { + priv->show_hidebutton = show_hidebutton; + panel_update_hide_buttons(panel); + } +} + +gboolean +panel_get_show_hidebutton (Panel *panel) +{ + PanelPrivate *priv; + + g_return_val_if_fail (PANEL_IS_PANEL (panel), DEFAULT_SHOW_HIDEBUTTON); + + priv = panel->priv; + return priv->show_hidebutton; +} + + +void panel_set_monitor (Panel *panel, gint monitor) { @@ -1475,7 +1595,8 @@ panel_set_screen_position (Panel /* update itembar size request */ panel_set_size (panel, priv->size); - + + panel_update_hide_buttons(panel); gtk_widget_queue_resize (GTK_WIDGET (panel)); g_idle_add((GSourceFunc)unblock_struts, panel); diff -uprN xfce4-panel/trunk/panel/panel-properties.h xfce4-panel-new/trunk/panel/panel-properties.h --- xfce4-panel/trunk/panel/panel-properties.h 2008-05-10 16:14:04.000000000 +0800 +++ xfce4-panel-new/trunk/panel/panel-properties.h 2008-05-10 16:15:55.000000000 +0800 @@ -37,6 +37,11 @@ gint panel_get_monitor (Panel *panel); void panel_set_monitor (Panel *panel, gint monitor); +gboolean panel_get_show_hidebutton (Panel *panel); + +void panel_set_show_hidebutton(Panel *panel, + gboolean show_hidebutton); + XfceScreenPosition panel_get_screen_position (Panel *panel); @@ -81,6 +86,9 @@ void panel_set_transparency (Panel *pane void panel_set_activetrans (Panel *panel, gboolean activetrans); +void panel_update_hide_buttons (Panel *panel); + + G_END_DECLS #endif /* !__PANEL_POSITION_H__ */ _______________________________________________ Xfce4-commits mailing list Xfce4-commits at xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits ----- End forwarded message ----- From christian at twotoasts.de Sat May 10 14:25:44 2008 From: christian at twotoasts.de (Christian Dywan) Date: Sat, 10 May 2008 14:25:44 +0200 Subject: [yanhwizhao@gmail.com: [Xfce4-commits] commit patch to xfce4-panel] In-Reply-To: <20080510113244.GA2635@failure.del> References: <20080510113244.GA2635@failure.del> Message-ID: <20080510142544.4d4126a9@twotoasts.de> Am Sat, 10 May 2008 13:32:44 +0200 schrieb Mike Massonnet : > Forwarded to the xfce dev ml as it will reach more exposure. > http://foo-projects.org/pipermail/xfce4-commits/2008-May/027207.html > > ----- Forwarded message from joy zhao ----- > > From: joy zhao > To: xfce4-commits at xfce.org > Subject: [Xfce4-commits] commit patch to xfce4-panel > List-Id: Xfce4 SVN Commits list > > hi, > I'd commit a patch for xfce4-panel, however, I don't know whom > exactly I should send this mail to . So I just send it to this > address. If it's no t a proper way, can anyone kindly enough let me > know ? Thanks! > > This patch is to add a show/hide button on panel, which, when > clicked, will toggle panel's show/hide status, and for example, have > panel hide to left corner or bottom corner. > users can choose whether to have this button on panel in panel > property dialog. > [...] > YanZhao Hi YanZhao, from the description this sounds like something I have seen in a KDE environment. I have not really used it but I can imagine that button as an interesting idea. I tend to think this would be better suited in the form of a plugin instead of a modification to the panel itself. Admittedly I cannot say whether the plugin interface is sufficient for that. Yours, Christian From mmassonnet at gmail.com Sat May 10 15:13:04 2008 From: mmassonnet at gmail.com (Mike Massonnet) Date: Sat, 10 May 2008 15:13:04 +0200 Subject: [yanhwizhao@gmail.com: [Xfce4-commits] commit patch to xfce4-panel] In-Reply-To: <20080510142544.4d4126a9@twotoasts.de> References: <20080510113244.GA2635@failure.del> <20080510142544.4d4126a9@twotoasts.de> Message-ID: <20080510131304.GB2635@failure.del> On Sat, May 10, 2008 at 02:25:44PM +0200, Christian Dywan wrote: > Am Sat, 10 May 2008 13:32:44 +0200 > schrieb Mike Massonnet : > > > Forwarded to the xfce dev ml as it will reach more exposure. > > http://foo-projects.org/pipermail/xfce4-commits/2008-May/027207.html > > > > ----- Forwarded message from joy zhao ----- > > > > From: joy zhao > > To: xfce4-commits at xfce.org > > Subject: [Xfce4-commits] commit patch to xfce4-panel > > List-Id: Xfce4 SVN Commits list > > > > hi, > > I'd commit a patch for xfce4-panel, however, I don't know whom > > exactly I should send this mail to . So I just send it to this > > address. If it's no t a proper way, can anyone kindly enough let me > > know ? Thanks! > > > > This patch is to add a show/hide button on panel, which, when > > clicked, will toggle panel's show/hide status, and for example, have > > panel hide to left corner or bottom corner. > > users can choose whether to have this button on panel in panel > > property dialog. > > [...] > > YanZhao > > Hi YanZhao, > > from the description this sounds like something I have seen in a KDE > environment. I have not really used it but I can imagine that button > as an interesting idea. > > I tend to think this would be better suited in the form of a > plugin instead of a modification to the panel itself. Yes. > Admittedly I cannot say whether the plugin interface is sufficient for > that. http://www.us.xfce.org/documentation/api/libxfce4panel/XfcePanelPlugin.html#xfce-panel-plugin-set-panel-hidden > Yours, > Christian Mike From pollux at xfce.org Sun May 11 14:47:33 2008 From: pollux at xfce.org (=?ISO-8859-1?Q?Jean-Fran=E7ois?= Wauthy) Date: Sun, 11 May 2008 14:47:33 +0200 Subject: Adding libglade as a dep for libxfcegui4. In-Reply-To: <74b8614e0805091413t222834b4ue903417516df947f@mail.gmail.com> References: <74b8614e0805091413t222834b4ue903417516df947f@mail.gmail.com> Message-ID: <1210510053.3988.1.camel@fawkes.p0llux.be> On Fri, 2008-05-09 at 23:13 +0200, Stephan Arts wrote: > I have written a patch for libxfcegui4. Adding libglade as a hard-dep > for libxfcegui4. > IIRC an improved libglade should be merged into GTK+ ? If this is the case I don't see the point in adding a hard-dep that will be removed in a near future. -- Jean-Fran?ois Wauthy -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 197 bytes Desc: This is a digitally signed message part Url : http://foo-projects.org/pipermail/xfce4-dev/attachments/20080511/a790550a/attachment.bin From christian at twotoasts.de Sun May 11 16:37:16 2008 From: christian at twotoasts.de (Christian Dywan) Date: Sun, 11 May 2008 16:37:16 +0200 Subject: Adding libglade as a dep for libxfcegui4. In-Reply-To: <1210510053.3988.1.camel@fawkes.p0llux.be> References: <74b8614e0805091413t222834b4ue903417516df947f@mail.gmail.com> <1210510053.3988.1.camel@fawkes.p0llux.be> Message-ID: <20080511163716.2413c672@twotoasts.de> Am Sun, 11 May 2008 14:47:33 +0200 schrieb Jean-Fran?ois Wauthy : > On Fri, 2008-05-09 at 23:13 +0200, Stephan Arts wrote: > > I have written a patch for libxfcegui4. Adding libglade as a > > hard-dep for libxfcegui4. > > > > IIRC an improved libglade should be merged into GTK+ ? If this is the > case I don't see the point in adding a hard-dep that will be removed > in a near future. If you are referring to GtkBuilder, that was added in Gtk+ 2.12, this is not an alternative to Glade, as far as Xfce is concerned, assuming that Xfce 4.6 is going to depend on Gtk+ 2.10. From bjt23 at cornell.edu Sun May 11 21:08:51 2008 From: bjt23 at cornell.edu (Brian J. Tarricone) Date: Sun, 11 May 2008 12:08:51 -0700 Subject: Adding libglade as a dep for libxfcegui4. In-Reply-To: <20080511163716.2413c672@twotoasts.de> References: <74b8614e0805091413t222834b4ue903417516df947f@mail.gmail.com> <1210510053.3988.1.camel@fawkes.p0llux.be> <20080511163716.2413c672@twotoasts.de> Message-ID: <20080511120851.1294cfd6@kepler> On Sun, 11 May 2008 16:37:16 +0200 Christian Dywan wrote: > Am Sun, 11 May 2008 14:47:33 +0200 > schrieb Jean-Fran?ois Wauthy : > > > On Fri, 2008-05-09 at 23:13 +0200, Stephan Arts wrote: > > > I have written a patch for libxfcegui4. Adding libglade as a > > > hard-dep for libxfcegui4. > > > > > > > IIRC an improved libglade should be merged into GTK+ ? If this is > > the case I don't see the point in adding a hard-dep that will be > > removed in a near future. > > If you are referring to GtkBuilder, that was added in Gtk+ 2.12, this > is not an alternative to Glade, as far as Xfce is concerned, assuming > that Xfce 4.6 is going to depend on Gtk+ 2.10. Right. You can do glade -> gtkbuilder conversions pretty easily. We could drop the glade dep when compiled against 2.12 or above, but it's not necessary to implement that off the bat if we don't have time. -brian From yanhwizhao at gmail.com Mon May 12 14:48:21 2008 From: yanhwizhao at gmail.com (joy zhao) Date: Mon, 12 May 2008 20:48:21 +0800 Subject: show/hide button Message-ID: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> Hi, I'd commit a patch for xfce4-panel, however, I don't know whom exactly I should send this mail to . So I just send it to this address. If it's no t a proper way, can anyone be kindly enough to let me know ? Thanks! This patch is to add a show/hide button on panel, which, when clicked, will toggle panel's show/hide status, and for example, have panel hide to left corner or bottom corner. users can choose whether to have this button on panel in panel property dialog. The attachment is my patch. YanZhao -------------- next part -------------- An HTML attachment was scrubbed... URL: http://foo-projects.org/pipermail/xfce4-dev/attachments/20080512/06d5dc77/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: xfce4-panel-show-hidebutton.patch Type: application/octet-stream Size: 42535 bytes Desc: not available Url : http://foo-projects.org/pipermail/xfce4-dev/attachments/20080512/06d5dc77/xfce4-panel-show-hidebutton-0001.obj From samuel.verstraete at gmail.com Mon May 12 17:20:37 2008 From: samuel.verstraete at gmail.com (samuel) Date: Mon, 12 May 2008 17:20:37 +0200 Subject: show/hide button In-Reply-To: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> References: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> Message-ID: best way would be to open a bugreport on bugs.xfce.org and attach the patch to it... as such your patch won't get lost On Mon, May 12, 2008 at 2:48 PM, joy zhao wrote: > Hi, > I'd commit a patch for xfce4-panel, however, I don't know whom exactly I > should send this mail to . So I just send it to this address. If it's no t > a proper way, can anyone be kindly enough to let me know ? Thanks! > This patch is to add a show/hide button on panel, which, when clicked, will > toggle panel's show/hide status, and for example, have panel hide to left > corner or bottom corner. > > users can choose whether to have this button on panel in panel property > dialog. > > > > The attachment is my patch. > > > > YanZhao > > _______________________________________________ > Xfce4-dev mailing list > Xfce4-dev at xfce.org > http://foo-projects.org/mailman/listinfo/xfce4-dev > From bjt23 at cornell.edu Mon May 12 19:32:14 2008 From: bjt23 at cornell.edu (Brian J. Tarricone) Date: Mon, 12 May 2008 10:32:14 -0700 Subject: show/hide button In-Reply-To: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> References: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> Message-ID: <48287F1E.9060605@cornell.edu> Someone already responded to your mail. This isn't something that makes sense to put in the panel. You'll want to create a plugin for it. -brian joy zhao wrote: > Hi, > I'd commit a patch for xfce4-panel, however, I don't know whom exactly I > should send this mail to . So I just send it to this address. If it's no t > a proper way, can anyone be kindly enough to let me know ? Thanks! > This patch is to add a show/hide button on panel, which, when clicked, will > toggle panel's show/hide status, and for example, have panel hide to left > corner or bottom corner. > > users can choose whether to have this button on panel in panel property > dialog. > > > > The attachment is my patch. > > > > YanZhao > > > > ------------------------------------------------------------------------ > > _______________________________________________ > Xfce4-dev mailing list > Xfce4-dev at xfce.org > http://foo-projects.org/mailman/listinfo/xfce4-dev From yanhwizhao at gmail.com Tue May 13 03:56:23 2008 From: yanhwizhao at gmail.com (joy zhao) Date: Tue, 13 May 2008 09:56:23 +0800 Subject: show/hide button In-Reply-To: References: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> Message-ID: <162800e10805121856k52923950kc88cd90ab17f77f7@mail.gmail.com> ok, I see. Thanks!!! On Mon, May 12, 2008 at 11:20 PM, samuel wrote: > best way would be to open a bugreport on bugs.xfce.org and attach the > patch to it... as such your patch won't get lost > > On Mon, May 12, 2008 at 2:48 PM, joy zhao wrote: > > Hi, > > I'd commit a patch for xfce4-panel, however, I don't know whom exactly > I > > should send this mail to . So I just send it to this address. If it's > no t > > a proper way, can anyone be kindly enough to let me know ? Thanks! > > This patch is to add a show/hide button on panel, which, when clicked, > will > > toggle panel's show/hide status, and for example, have panel hide to > left > > corner or bottom corner. > > > > users can choose whether to have this button on panel in panel property > > dialog. > > > > > > > > The attachment is my patch. > > > > > > > > YanZhao > > > > _______________________________________________ > > Xfce4-dev mailing list > > Xfce4-dev at xfce.org > > http://foo-projects.org/mailman/listinfo/xfce4-dev > > > _______________________________________________ > Xfce4-dev mailing list > Xfce4-dev at xfce.org > http://foo-projects.org/mailman/listinfo/xfce4-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://foo-projects.org/pipermail/xfce4-dev/attachments/20080513/6a8080d6/attachment.html From yanhwizhao at gmail.com Tue May 13 08:13:45 2008 From: yanhwizhao at gmail.com (joy zhao) Date: Tue, 13 May 2008 14:13:45 +0800 Subject: show/hide button In-Reply-To: <48287F1E.9060605@cornell.edu> References: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> <48287F1E.9060605@cornell.edu> Message-ID: <162800e10805122313j2357d4d6g6634983a8b30b4ed@mail.gmail.com> hi, I don't think this function can be made as a plugin, since it needs to have the panel move entirely. Panel plugins, internal or external, are children of panel Item container directly (the internal condition ) or first wrapped in gtkplug which then inserted into gtksocket -- the parent class or external item, and finally the socket item being packed into panel's item container. In one word, neither of the two kinds of plugins can access Panel's address and have panel the desired behavior. Sure, we can also have the plugins communicate with panel trunk through client messages, however, we cannot achieve the goal without modify the panel proper -- add a new client message interface. That's why I have to have this panel patch. Do you have any other good ideas ? On Tue, May 13, 2008 at 1:32 AM, Brian J. Tarricone wrote: > Someone already responded to your mail. > > This isn't something that makes sense to put in the panel. You'll want > to create a plugin for it. > > -brian > > joy zhao wrote: > > Hi, > > I'd commit a patch for xfce4-panel, however, I don't know whom exactly > I > > should send this mail to . So I just send it to this address. If it's > no t > > a proper way, can anyone be kindly enough to let me know ? Thanks! > > This patch is to add a show/hide button on panel, which, when clicked, > will > > toggle panel's show/hide status, and for example, have panel hide to > left > > corner or bottom corner. > > > > users can choose whether to have this button on panel in panel property > > dialog. > > > > > > > > The attachment is my patch. > > > > > > > > YanZhao > > > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Xfce4-dev mailing list > > Xfce4-dev at xfce.org > > http://foo-projects.org/mailman/listinfo/xfce4-dev > _______________________________________________ > Xfce4-dev mailing list > Xfce4-dev at xfce.org > http://foo-projects.org/mailman/listinfo/xfce4-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://foo-projects.org/pipermail/xfce4-dev/attachments/20080513/687dccaf/attachment.html From nickschermer at gmail.com Tue May 13 08:44:35 2008 From: nickschermer at gmail.com (Nick Schermer) Date: Tue, 13 May 2008 08:44:35 +0200 Subject: show/hide button In-Reply-To: <162800e10805122313j2357d4d6g6634983a8b30b4ed@mail.gmail.com> References: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> <48287F1E.9060605@cornell.edu> <162800e10805122313j2357d4d6g6634983a8b30b4ed@mail.gmail.com> Message-ID: <4abe35490805122344k7a6f1544idd7686a874b61690@mail.gmail.com> Well first create a new bug and assign it to me (nick at xfce.org) with the patch attached. I don't want to integrate this patch into the panel since it somewhat conflics with our design, but i've been working on a new panel framework using dbus so that could provide the needed communication for a plugin. From yanhwizhao at gmail.com Tue May 13 16:30:09 2008 From: yanhwizhao at gmail.com (joy zhao) Date: Tue, 13 May 2008 22:30:09 +0800 Subject: show/hide button In-Reply-To: <4abe35490805122344k7a6f1544idd7686a874b61690@mail.gmail.com> References: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> <48287F1E.9060605@cornell.edu> <162800e10805122313j2357d4d6g6634983a8b30b4ed@mail.gmail.com> <4abe35490805122344k7a6f1544idd7686a874b61690@mail.gmail.com> Message-ID: <162800e10805130730l9856d18o4b5a8952fee36f9d@mail.gmail.com> hi, nick Thanks for your reply! I've reported that as a bug and cc to you(nick at xfce.org), (it seems nowhere can directly assign it to you). But as to make this function as a plugin and its communication via dbus, I've another question: will you in the new framework allow plugins to specify their positions? As you know, in current panel, plugins' position are determined by their sequence in panel.xml on panel start up. If it comes to show/hide button which should be placed at both ends of a panel, a mechanism to allow panel to care for plugins' position request is more than welcome. YanZhao On Tue, May 13, 2008 at 2:44 PM, Nick Schermer wrote: > Well first create a new bug and assign it to me (nick at xfce.org) with > the patch attached. > > I don't want to integrate this patch into the panel since it somewhat > conflics with our design, but i've been working on a new panel > framework using dbus so that could provide the needed communication > for a plugin. > _______________________________________________ > Xfce4-dev mailing list > Xfce4-dev at xfce.org > http://foo-projects.org/mailman/listinfo/xfce4-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://foo-projects.org/pipermail/xfce4-dev/attachments/20080513/36cf696f/attachment-0001.html From bjt23 at cornell.edu Tue May 13 19:54:25 2008 From: bjt23 at cornell.edu (Brian J. Tarricone) Date: Tue, 13 May 2008 10:54:25 -0700 Subject: show/hide button In-Reply-To: <162800e10805122313j2357d4d6g6634983a8b30b4ed@mail.gmail.com> References: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> <48287F1E.9060605@cornell.edu> <162800e10805122313j2357d4d6g6634983a8b30b4ed@mail.gmail.com> Message-ID: <4829D5D1.8030209@cornell.edu> joy zhao wrote: > hi, I don't think this function can be made as a plugin, since it needs to > have the panel move entirely. > Panel plugins, internal or external, are > children of panel Item container directly (the internal condition ) or > first wrapped in gtkplug which then inserted into gtksocket -- the parent > class or external item, and finally the socket item being packed into > panel's item container. In one word, neither of the two kinds of plugins can > access Panel's address and have panel the desired behavior. Yes, I'm well aware of this ^_~. But I thought there was a function in the libxfce4panel API to toggle the panel's autohide behavior, but I guess not, as I can't find it now. > Sure, we can > also have the plugins communicate with panel trunk through client messages, > however, we cannot achieve the goal without modify the panel proper -- add > a new client message interface. Well, actually, the panel already uses client messages to communicate with plugins... > That's why I have to have this panel patch. > Do you have any other good ideas ? Why is it necessary? What's wrong with the panel's autohide behavior? I feel like this is a niche feature that isn't really a great idea to put in the panel proper... Tho adding a way to allow plugins to change autohide behavior might not be a bad idea. -brian > > On Tue, May 13, 2008 at 1:32 AM, Brian J. Tarricone > wrote: > >> Someone already responded to your mail. >> >> This isn't something that makes sense to put in the panel. You'll want >> to create a plugin for it. >> >> -brian >> >> joy zhao wrote: >>> Hi, >>> I'd commit a patch for xfce4-panel, however, I don't know whom exactly >> I >>> should send this mail to . So I just send it to this address. If it's >> no t >>> a proper way, can anyone be kindly enough to let me know ? Thanks! >>> This patch is to add a show/hide button on panel, which, when clicked, >> will >>> toggle panel's show/hide status, and for example, have panel hide to >> left >>> corner or bottom corner. >>> >>> users can choose whether to have this button on panel in panel property >>> dialog. >>> >>> >>> >>> The attachment is my patch. >>> >>> >>> >>> YanZhao >>> >>> >>> >>> ------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Xfce4-dev mailing list >>> Xfce4-dev at xfce.org >>> http://foo-projects.org/mailman/listinfo/xfce4-dev >> _______________________________________________ >> Xfce4-dev mailing list >> Xfce4-dev at xfce.org >> http://foo-projects.org/mailman/listinfo/xfce4-dev >> > > > ------------------------------------------------------------------------ > > _______________________________________________ > Xfce4-dev mailing list > Xfce4-dev at xfce.org > http://foo-projects.org/mailman/listinfo/xfce4-dev From h.aling at home.nl Tue May 13 20:21:48 2008 From: h.aling at home.nl (Harold Aling) Date: Tue, 13 May 2008 20:21:48 +0200 Subject: show/hide button In-Reply-To: <4829D5D1.8030209@cornell.edu> References: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> <48287F1E.9060605@cornell.edu> <162800e10805122313j2357d4d6g6634983a8b30b4ed@mail.gmail.com> <4829D5D1.8030209@cornell.edu> Message-ID: <20080513202148.7dd07988@desktop> On Tue, 13 May 2008 10:54:25 -0700 "Brian J. Tarricone" wrote: ... > great idea to put in the panel proper... Tho adding a way to allow > plugins to change autohide behavior might not be a bad idea. > > -brian *shamefully hijacking this thread* If plugins could alter autohide behavior, it would be really cool if the verve plugin would keep a panel 'open' until the command is execured or is pressed... -H- From xfce4devlist at sstuhr.dk Tue May 13 20:24:24 2008 From: xfce4devlist at sstuhr.dk (Stefan Stuhr) Date: Tue, 13 May 2008 20:24:24 +0200 Subject: show/hide button In-Reply-To: <4829D5D1.8030209@cornell.edu> References: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> <48287F1E.9060605@cornell.edu> <162800e10805122313j2357d4d6g6634983a8b30b4ed@mail.gmail.com> <4829D5D1.8030209@cornell.edu> Message-ID: <1210703064.7569.46.camel@thorold> tir, 13 05 2008 kl. 10:54 -0700, skrev Brian J. Tarricone: > > That's why I have to have this panel patch. > > Do you have any other good ideas ? > > Why is it necessary? What's wrong with the panel's autohide behavior? > I feel like this is a niche feature that isn't really a great idea to > put in the panel proper... Tho adding a way to allow plugins to change > autohide behavior might not be a bad idea. Not commenting on the usefulness of having show/hide buttons, as I wouldn't use such a feature myself, but even if it is/becomes possible for plugins to toggle autohide, I don't think it would provide the desired behavior for these show/hide buttons. Without having tried the patch, I get the impression that it is like the arrow buttons of other panel implementations (option in GNOME panel, as far as I remember), where a click on an arrow button at one end of a panel hides the panel at the monitor edge (left edge when clicking on button on left side of panel, right edge for button on right side of panel, and likewise, top/bottom edge for vertical panels), with only the button still visible, and clickable (and arrow direction reversed). > -brian Stefan From nickschermer at gmail.com Tue May 13 20:39:54 2008 From: nickschermer at gmail.com (Nick Schermer) Date: Tue, 13 May 2008 20:39:54 +0200 Subject: show/hide button In-Reply-To: <162800e10805130730l9856d18o4b5a8952fee36f9d@mail.gmail.com> References: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> <48287F1E.9060605@cornell.edu> <162800e10805122313j2357d4d6g6634983a8b30b4ed@mail.gmail.com> <4abe35490805122344k7a6f1544idd7686a874b61690@mail.gmail.com> <162800e10805130730l9856d18o4b5a8952fee36f9d@mail.gmail.com> Message-ID: <4abe35490805131139g578f6423j5cc044194f518e5b@mail.gmail.com> 2008/5/13, joy zhao > But as to make this function as a plugin and its communication via dbus, > I've another question: > will you in the new framework allow plugins to specify their positions? As > you know, in current panel, plugins' position > are determined by their sequence in panel.xml on panel start up. If it comes > to show/hide button which should be placed > at both ends of a panel, a mechanism to allow panel to care for plugins' > position request is more than welcome. I'm not entirely sure, but the idea of the dbus interface is that from outside the panel plugins can register. This also allows "remote" plugins Brian once requested for xfce-power-manager. I'm not sure plugins need to power to set their position since they have no clue about the panel layout (they don't want to), but who knows.... Nick From nickschermer at gmail.com Tue May 13 20:45:31 2008 From: nickschermer at gmail.com (Nick Schermer) Date: Tue, 13 May 2008 20:45:31 +0200 Subject: show/hide button In-Reply-To: <4829D5D1.8030209@cornell.edu> References: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> <48287F1E.9060605@cornell.edu> <162800e10805122313j2357d4d6g6634983a8b30b4ed@mail.gmail.com> <4829D5D1.8030209@cornell.edu> Message-ID: <4abe35490805131145j58fca42rd3dcd33823a1e4dc@mail.gmail.com> 2008/5/13, Brian J. Tarricone : > Why is it necessary? What's wrong with the panel's autohide behavior? > I feel like this is a niche feature that isn't really a great idea to > put in the panel proper... Tho adding a way to allow plugins to change > autohide behavior might not be a bad idea. It's not up to you to decide whether people should or shouldn't like this feature ;-). My experimental panel already supports hiding sideways (and guest what, it is kinda handy), so it only needs a clever way to control this 'remote'. Nick From yanhwizhao at gmail.com Wed May 14 03:49:47 2008 From: yanhwizhao at gmail.com (joy zhao) Date: Wed, 14 May 2008 09:49:47 +0800 Subject: show/hide button In-Reply-To: <4abe35490805131145j58fca42rd3dcd33823a1e4dc@mail.gmail.com> References: <162800e10805120548q48053c9du760c3c2a954c1bb7@mail.gmail.com> <48287F1E.9060605@cornell.edu> <162800e10805122313j2357d4d6g6634983a8b30b4ed@mail.gmail.com> <4829D5D1.8030209@cornell.edu> <4abe35490805131145j58fca42rd3dcd33823a1e4dc@mail.gmail.com> Message-ID: <162800e10805131849g49b5bdable5c3d93f98e28a8e@mail.gmail.com> hi, In the current panel, the panel window inherited form XfcePanelWindowClass, and in its xfce_panel_window_size_allocate routine, priv->resize_func ( panel_resize_function ) would be called, which would determine panel window's position on screen and this routine would be called from time to time and prevent a plugin's information of panel moving to another position. So if not do certain changed in the panel itself, I don't think a plugin can have enough power to implement task to show/hide panel to corner. I don't intend to push you to use my patch, and further improvement on it is necessary. My concern is that if panel already has implement the trunk of the functionality, why do we have to add a dummy plugin to take the superficial responsibility? plugins should do what the panel do not know, like displaying a clock, eyes..., but not what the panel knows and already have done! Just we only need a option in panel's customization dialog to toggle autohide behavior, instead of a unnecessary plugin to have users the choice of deciding panel can autohide or not. If we have to put the main function in the panel, why not just provide an option in the customization dialog and toggle the existence of the show/hide button? On Wed, May 14, 2008 at 2:45 AM, Nick Schermer wrote: > 2008/5/13, Brian J. Tarricone : > > Why is it necessary? What's wrong with the panel's autohide behavior? > > I feel like this is a niche feature that isn't really a great idea to > > put in the panel proper... Tho adding a way to allow plugins to change > > autohide behavior might not be a bad idea. > > It's not up to you to decide whether people should or shouldn't like > this feature ;-). My experimental panel already supports hiding > sideways (and guest what, it is kinda handy), so it only needs a > clever way to control this 'remote'. > > Nick > _______________________________________________ > Xfce4-dev mailing list > Xfce4-dev at xfce.org > http://foo-projects.org/mailman/listinfo/xfce4-dev > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://foo-projects.org/pipermail/xfce4-dev/attachments/20080514/2dacec2e/attachment.html From corsac at debian.org Wed May 14 10:28:38 2008 From: corsac at debian.org (Yves-Alexis Perez) Date: Wed, 14 May 2008 10:28:38 +0200 Subject: xfce mixer plugin & suspend In-Reply-To: <48234197.7030103@free.fr> References: <48234197.7030103@free.fr> Message-ID: <20080514082838.GD19873@molly.corsac.net> On Thu, May 08, 2008 at 06:08:23PM +0000, jp.guillemin wrote: > Hi, > > There's an old problem between xfce4-mixer (panel plugin) and suspend. > > Suspending requires to release all file handles from mixer devices, and > the usual way to do it implies to kill xfce4-mixer (something like fuser > -k /dev/snd/control*). I never had problem with suspend. Are you sure you use alsa stuff and not oss? -- Yves-Alexis From enrico.troeger at uvena.de Sat May 17 14:26:36 2008 From: enrico.troeger at uvena.de (Enrico =?UTF-8?B?VHLDtmdlcg==?=) Date: Sat, 17 May 2008 14:26:36 +0200 Subject: [Goodies-commits] r4806 - xfce4-taskmanager/trunk/src In-Reply-To: <20080516070520.878A0F29DD@mocha.foo-projects.org> References: <20080516070520.878A0F29DD@mocha.foo-projects.org> Message-ID: <20080517142636.414dc765.enrico.troeger@uvena.de> On Fri, 16 May 2008 07:05:20 +0000 (UTC), "Mike Massonnet" wrote: Hi, > Author: mmassonnet > Date: 2008-05-16 07:05:20 +0000 (Fri, 16 May 2008) > New Revision: 4806 > > Log: > New information menu to select the columns to display; minor clean up one minor issue: when I click on the "Information" the opened popup can't be closed except when I click somewhere else. IMO it would be better if it would close when I click on the top most item "Information" which is currently insensitive. Not really a big thing but would be more intuitive, IMO. Regards, Enrico -- Get my GPG key from http://www.uvena.de/pub.asc -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://foo-projects.org/pipermail/xfce4-dev/attachments/20080517/abe3cfd4/attachment.bin From corsac at debian.org Sat May 17 14:47:00 2008 From: corsac at debian.org (Yves-Alexis Perez) Date: Sat, 17 May 2008 14:47:00 +0200 Subject: [Goodies-commits] r4806 - xfce4-taskmanager/trunk/src In-Reply-To: <20080517142636.414dc765.enrico.troeger@uvena.de> References: <20080516070520.878A0F29DD@mocha.foo-projects.org> <20080517142636.414dc765.enrico.troeger@uvena.de> Message-ID: <20080517124700.GA4722@molly.corsac.net> On Sat, May 17, 2008 at 12:26:36PM +0000, Enrico Tr?ger wrote: > one minor issue: > > when I click on the "Information" the opened popup can't be closed > except when I click somewhere else. > IMO it would be better if it would close when I click on the top most > item "Information" which is currently insensitive. > Not really a big thing but would be more intuitive, IMO. Here, when I (un)check an item, the menu is closed. Cheers, -- Yves-Alexis From enrico.troeger at uvena.de Sat May 17 15:13:35 2008 From: enrico.troeger at uvena.de (Enrico =?UTF-8?B?VHLDtmdlcg==?=) Date: Sat, 17 May 2008 15:13:35 +0200 Subject: [Goodies-commits] r4806 - xfce4-taskmanager/trunk/src In-Reply-To: <20080517124700.GA4722@molly.corsac.net> References: <20080516070520.878A0F29DD@mocha.foo-projects.org> <20080517142636.414dc765.enrico.troeger@uvena.de> <20080517124700.GA4722@molly.corsac.net> Message-ID: <20080517151335.124640a6.enrico.troeger@uvena.de> On Sat, 17 May 2008 14:47:00 +0200, Yves-Alexis Perez wrote: > On Sat, May 17, 2008 at 12:26:36PM +0000, Enrico Tr?ger wrote: > > one minor issue: > > > > when I click on the "Information" the opened popup can't be closed > > except when I click somewhere else. > > IMO it would be better if it would close when I click on the top > > most item "Information" which is currently insensitive. > > Not really a big thing but would be more intuitive, IMO. > > Here, when I (un)check an item, the menu is closed. Sure. Maybe I wasn't clear enough, I meant when I open the popup and don't (un)check anything. Then I can click somewhere else in the main window to hide the popup but it would be cool if it also hides when I click on the top most item. But not that important at all ;-). Regards, Enrico -- Get my GPG key from http://www.uvena.de/pub.asc -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: not available Url : http://foo-projects.org/pipermail/xfce4-dev/attachments/20080517/f194c9dc/attachment.bin From mmassonnet at gmail.com Sat May 17 16:06:42 2008 From: mmassonnet at gmail.com (Mike Massonnet) Date: Sat, 17 May 2008 16:06:42 +0200 Subject: [Goodies-commits] r4806 - xfce4-taskmanager/trunk/src In-Reply-To: <20080517151335.124640a6.enrico.troeger@uvena.de> References: <20080516070520.878A0F29DD@mocha.foo-projects.org> <20080517142636.414dc765.enrico.troeger@uvena.de> <20080517124700.GA4722@molly.corsac.net> <20080517151335.124640a6.enrico.troeger@uvena.de> Message-ID: <20080517140642.GU2635@failure.del> On Sat, May 17, 2008 at 03:13:35PM +0200, Enrico Tr?ger wrote: > On Sat, 17 May 2008 14:47:00 +0200, Yves-Alexis Perez > wrote: > > > On Sat, May 17, 2008 at 12:26:36PM +0000, Enrico Tr?ger wrote: > > > one minor issue: > > > > > > when I click on the "Information" the opened popup can't be closed > > > except when I click somewhere else. > > > IMO it would be better if it would close when I click on the top > > > most item "Information" which is currently insensitive. > > > Not really a big thing but would be more intuitive, IMO. > > > > Here, when I (un)check an item, the menu is closed. > > Sure. > Maybe I wasn't clear enough, I meant when I open the popup and don't > (un)check anything. Then I can click somewhere else in the main window > to hide the popup but it would be cool if it also hides when I click on > the top most item. > But not that important at all ;-). Yeah, isn't important, and it doesn't have to behave like a combobox, as it is just a plain menu. Mike From erikharrison at gmail.com Sun May 18 04:37:59 2008 From: erikharrison at gmail.com (Erik Harrison) Date: Sat, 17 May 2008 22:37:59 -0400 Subject: mcs to xfconf migration In-Reply-To: <48249CF5.8030708@cornell.edu> References: <48249CF5.8030708@cornell.edu> Message-ID: <5b18a5420805171937j36307c9cxef402d420ad789b4@mail.gmail.com> On Fri, May 9, 2008 at 2:50 PM, Brian J. Tarricone wrote: > Hey all, > > Over the past month or two, Stephan and I have been working to get > Xfconf in shape for 4.6, and we're making some really good progress. > I've started working on migrating settings from MCS to Xfconf, and I > have a little bit of a dilemma as to how to make it all work. > > So far I have perl scripts (generally one per module; so xfdesktop would > install one, xfwm4 would install another, etc.) that manually parse the > MCS XML files (I think it's reasonable to require the XML::Parser perl > module), and then use xfconf-query (our command-line tool to get and set > Xfconf config properties) to migrate the settings. This seems to work well. > > Of course, I don't want people to have to run these manually, and I > don't want the individual modules to have to check on startup for > $XDG_CONFIG_HOME/xfce4/mcs_settings/foo.xml every single time and > possibly initiate migration. > > One option I thought of is to use the autostart mechanism. Each module > that installs a migration script can install an autostart file to the > system autostart location. On first run, the migration script will get > run. The last thing each script will do is copy the autostart file to > that user's per-user autostart directory, but set Hidden=true in the > copy so future startups cause the system-wide file to be ignored. > > This sounds decent to me, and avoids putting annoying migration code > into the applications themselves (like we did for the xdg basedir > migration for 4.2... code which I think we should remove for 4.6). It's > possibly a little faster to put the code in the apps, since all it has > to do is a stat() to see if it should do the migration, whereas the > session manager has to parse .desktop files on startup each time. But I > think the autostart method is a much cleaner way of doing it. > > Anybody have any thoughts? A better way of doing it? Severe hand waving since I just got back from vacation - can we make Xfconf do the work? If the channel name and property name are the same, just fetch from the old store? Applications would have to do precisely dick, and we could reuse MCS code to parse the XML so no additional dependencies required. No fuss, no muss from a user or a developer POV. Of course your message is over a week old, so perhaps this has already been sufficiently addressed. > > -brian > _______________________________________________ > Xfce4-dev mailing list > Xfce4-dev at xfce.org > http://foo-projects.org/mailman/listinfo/xfce4-dev > -- Erik "Look at me still talking when there is Science to do" From stephan at xfce.org Tue May 20 09:25:38 2008 From: stephan at xfce.org (Stephan Arts) Date: Tue, 20 May 2008 09:25:38 +0200 Subject: [T-DOSE] Technical Dutch Open Source Event 2008 Message-ID: <74b8614e0805200025s10046573w579a0f20ef7c55e8@mail.gmail.com> Hi, As some of you might know, I have been to the Dutch Ubuntu Release Party this weekend. This was a big success since I found a fresh volunteer to take care of the Dutch translations. When I was there, I received a flyer for the T-DOSE[0], the Technical Dutch Open Source Event. At the Fontys Hogeschool in Eindhoven. This is being held at the 25th and 26th of Oktober. Stands and developer-rooms there are free-of-charge, but there is 'limited' capacity. My Question: Is anyone interested to go there? Gr, Stephan [0] http://www.t-dose.org From jelledejong at powercraft.nl Tue May 20 10:12:58 2008 From: jelledejong at powercraft.nl (Jelle de Jong) Date: Tue, 20 May 2008 10:12:58 +0200 Subject: [T-DOSE] Technical Dutch Open Source Event 2008 In-Reply-To: <74b8614e0805200025s10046573w579a0f20ef7c55e8@mail.gmail.com> References: <74b8614e0805200025s10046573w579a0f20ef7c55e8@mail.gmail.com> Message-ID: <4832880A.8080404@powercraft.nl> Stephan Arts wrote: > Hi, > > As some of you might know, I have been to the Dutch Ubuntu Release > Party this weekend. This was a big success since I found a fresh > volunteer to take care of the Dutch translations. > > When I was there, I received a flyer for the T-DOSE[0], the Technical > Dutch Open Source Event. At the Fontys Hogeschool in Eindhoven. This > is being held at the 25th and 26th of Oktober. Stands and > developer-rooms there are free-of-charge, but there is 'limited' > capacity. > > My Question: Is anyone interested to go there? > > Gr, > Stephan > > [0] http://www.t-dose.org I will probably be there. Kind regards, Jelle From imnotb at gmail.com Tue May 20 18:02:18 2008 From: imnotb at gmail.com (Vincent) Date: Tue, 20 May 2008 18:02:18 +0200 Subject: [T-DOSE] Technical Dutch Open Source Event 2008 In-Reply-To: <74b8614e0805200025s10046573w579a0f20ef7c55e8@mail.gmail.com> References: <74b8614e0805200025s10046573w579a0f20ef7c55e8@mail.gmail.com> Message-ID: <749ebd440805200902w72a43d2ekae5230706cec7f25@mail.gmail.com> On Tue, May 20, 2008 at 9:25 AM, Stephan Arts wrote: > Hi, > > As some of you might know, I have been to the Dutch Ubuntu Release > Party this weekend. This was a big success since I found a fresh > volunteer to take care of the Dutch translations. Just an FYI: I've been picking up work on the Dutch translations again recently, updating/creating translations for newly released Xfce components :) > > Gr, > Stephan > > [0] http://www.t-dose.org > _________________________________________ > -- Vincent -------------- next part -------------- An HTML attachment was scrubbed... URL: http://foo-projects.org/pipermail/xfce4-dev/attachments/20080520/81b54d99/attachment-0001.html From stephan at xfce.org Wed May 21 00:14:06 2008 From: stephan at xfce.org (Stephan Arts) Date: Wed, 21 May 2008 00:14:06 +0200 Subject: [T-DOSE] Technical Dutch Open Source Event 2008 In-Reply-To: <749ebd440805200902w72a43d2ekae5230706cec7f25@mail.gmail.com> References: <74b8614e0805200025s10046573w579a0f20ef7c55e8@mail.gmail.com> <749ebd440805200902w72a43d2ekae5230706cec7f25@mail.gmail.com> Message-ID: <74b8614e0805201514g6254b7c6t7e4c5139b4c1c111@mail.gmail.com> On Tue, May 20, 2008 at 6:02 PM, Vincent wrote: > > > On Tue, May 20, 2008 at 9:25 AM, Stephan Arts wrote: >> >> Hi, >> >> As some of you might know, I have been to the Dutch Ubuntu Release >> Party this weekend. This was a big success since I found a fresh >> volunteer to take care of the Dutch translations. > > Just an FYI: I've been picking up work on the Dutch translations again > recently, updating/creating translations for newly released Xfce components > :) Yeah, I noticed. Great to have you back :-) - Stephan