Swing Label XSRF



  • So I was working on a small application which reads a text file and displays the data in a JTree. Suddenly it stopped working and displayed gibberish. Why? Because the text was some sort of HTML. What? Yes. Apparently, HTML labels are an important "feature" of the Swing framework.

    You see, if you put some plain text in a text field, it will do what it is supposed to do: Render plain text. If you put some text in a label/button/menu/whatever instead, things are a little different. Those components will also render plain text 99% of the time, unless the text starts with the string "<html>". In this case, the default behavior is to parse the text as HTML and render fancy colors and images. And since a JTree uses a kind of JLabel to render tree cells, JTrees can display HTML as well.

    Sure, it might be useful now and then. But I'm just trying to display plain text in a tree! PLAIN! TEXT! How hard could that be? A GUI framework which cannot display plain text by default? Seriously? (WTF#1) And don't get me started on the security implications if the text happens to contain <img> elements with malicious src attributes. (WTF#2) Bonus points if you can craft a plain *.java source file which, if opened in the Eclipse IDE, will trick the package explorer view into rebooting my router!

    Ok, calm down, I'm sure there must be a way to turn it off. Every feature you cannot turn off is a bug, right? So let's see ...

    Apparently, someone else had the same problem 9 years ago. Aha, so you can set an undocumented (WTF#3) property in a hash map (WTF#4) to disable HTML. Well, at least that's better than escaping special HTML characters. Let's try that:

    label.putClientProperty(javax.swing.plaf.basic.BasicHTML.htmlDisable, Boolean.TRUE);

    Ooops, my bad, htmlDisable is private (WTF#5).

    label.putClientProperty("html.disable", Boolean.TRUE);

    Ah, much better!

    On a side node: javax.swing.plaf.basic.BasicHTML.updateRenderer tests if this property is !=Boolean.TRUE, i.e., new Boolean(true) will not work, you have to use the one and only Boolean.TRUE (WTF#6).

    Back on topic. Now all I have to do is to feed my JTree a custom TreeCellRenderer. And disable HTML for all other labels. And buttons. And tables. And ... sigh. There must be a way to disable HTML globally!

    Someone suggested the only way to do that is to replace the look and feel. WTF#7? Is there no easier way? Well, at least we're getting somewhere. Although this piece of code get's the job done, it has a few drawbacks: It only fixes LabelUI and it depends on the Windows Look and Feel. But it's a good start. I can continue from there.

    After reading the JDK source for a few hours, I think I found an acceptable solution: Register an auxiliary look and feel which disables HTML everywhere. Now all I have to do is call disableHTML() during startup and HTML is gone! Finally!

    Code posted here just in case someone else has the same problem:

    public class PlainLookAndFeel extends BasicLookAndFeel {
    public static void disableHTML() {
    UIManager.addAuxiliaryLookAndFeel(new PlainLookAndFeel());
    }
    private final UIDefaults UI_DEFAULTS = new UIDefaults() {
    @Override
    public ComponentUI getUI(JComponent target) {
    target.putClientProperty("html.disable", Boolean.TRUE);
    return null;
    }
    };
    @Override
    public UIDefaults getDefaults() {
    return UI_DEFAULTS;
    }
    @Override
    public String getName() {
    return "Plain Look and Feel";
    }
    @Override
    public String getID() {
    return "Plain";
    }
    @Override
    public String getDescription() {
    return "Disables HTML by default.";
    }
    @Override
    public boolean isNativeLookAndFeel() {
    return false;
    }
    @Override
    public boolean isSupportedLookAndFeel() {
    return true;
    }
    }



  •  Yeah, I wondered (and got annoyed) about that "feature" too, a while ago. There are some more of those "features" hidden inside the standard Java libraries - whoever developed that stuff must have been really fond of HTML.

    Another one I've found is in the standard XML(!) serializer. It contains a hard-coded and non-overridable check if the root element name matches /html/i. If it does, it will completely ignore your pretty-print rules and employ special rules optimized for - I can only guess - HTML 2.0. In any case, all your HTML documents that are more complicated than the w3cschools tutorial will come out as unreadable glibberish. So far I haven't found any way to turn that one off...

    But regarding XSRF, there are way larger holes than this. The first being, that the standard XML parser tries to download DTDs. Just in the case you need some more places to put your router reset URL in...



  • @PSWorx said:

    But regarding XSRF, there are way larger holes than this. The first being, that the standard XML parser tries to download DTDs. Just in the case you need some more places to put your router reset URL in...

    Yeah, I just discovered that when I tried to figure out why java was pausing around for a minute or so every time the parser fired up.  The solution, just in case you haven't found it yet, is to call "setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);" on your SAXParserFactory before creating your parser.

    Except on Android, which doesn't support that feature, and throws a parser configuration exception.  I hope that means that Android's implementation doesn't ever fetch DTDs, but it could just be because I haven't hooked the emulator up to any networking...




  • This is why I like GTK.  By default, all labels (including Buttons, Treeviews, etc) are rendered as plaintext, but formatting can be enabled with a simple bool in the label's constructor.



  •  I am constantly amazed by how, every time I think that I've heard the biggest WTF involved in java and the major libraries used with it, another even bigger wtf comest along and makes all the others look like nothing.




  • @TheChewanater said:

    This is why I like GTK.  By default, all labels (including Buttons, Treeviews, etc) are rendered as plaintext, but formatting can be enabled with a simple bool in the label's constructor.

    agreed GTK is pretty rad, though everything is cumbersome compared to .NET winforms. Its like th Bob Ross of the desktop world, one look at him and you know you can make anything.

    GTK# however is an abomination and must die.



  • I personally like gtkmm a lot.  It's, like, an OOP GUI toolkit that's actually done right.

     

    (I must admit, however, that I've never tried .NET winforms)



  • @fatbull said:

    Bonus points if you can craft a plain *.java source file which, if opened in the Eclipse IDE, will trick the package explorer view into rebooting my router!

     

    I don't think that will be quite that easy since afaik Eclipse uses SWT instead of Swing. A choice that, I bet, has spared them hundreds of angry support calls over the years.

    But at least I can offer your a java source that resets your router as soon as you mouse over some method to look up the javadoc:

     /** <img src="http://url/of/your/choice"> */
    class Foo {

    /** <img src="http://url/of/your/choice"> */
    public Foo() {}

    }

    ... some other class...:

    Foo x = new Foo(); //what's that foo thing doing again? Come on, have a look, I know you want to...


  •   Oh my, this works on my Java game creation tool.

    But NetBeans is vulnerable too, now I feel better.

     

    Now that I think about it, that's a good feature--if your coworker leaves a giant WTF sign in the doc for your method, that's a sign that you need to improve it...



  • Although HTML rendering enabled by default is not the brightest of ideas, TRWTF are routers which allow reset through GET.



  • @Obfuscator said:

    Although HTML rendering enabled by default is not the brightest of ideas, TRWTF are routers which allow reset through GET.
     

    While true, if the thing can render forms and possibly javascript, then it would be possible to do post stuff too.



  • @DescentJS said:

    While true, if the thing can render forms and possibly javascript, then it would be possible to do post stuff too.
    I think HTML support of those labels doesn't go much further than formatting tags and maybe tables. Or at least I hope so. Because everything else would be seriously scary.



  • @fatbull said:

    After reading the JDK source for a few hours, I think I found an acceptable solution: Register an auxiliary look and feel which disables HTML everywhere.
    Did you try StackOverflow? I'm not familiar with Swing, but it looks like someone's already been there.



  • @PSWorx said:

    I don't think that will be quite that easy since afaik Eclipse uses SWT instead of Swing.

    Indeed. But I see you already found alternatives.

    @DOA said:

    Did you try StackOverflow?

    Actually yes, I did.

    @DescentJS said:

    While true, if the thing can render forms and possibly javascript, then it would be possible to do post stuff too.

    Reading the source, I'd say JS is not supported. Maybe it will be included in JDK7? Who knows ...



  • @chikinpotpi said:

    @TheChewanater said:
    This is why I like GTK.  By default, all labels (including Buttons, Treeviews, etc) are rendered as plaintext, but formatting can be enabled with a simple bool in the label's constructor.

    agreed GTK is pretty rad, though everything is cumbersome compared to .NET winforms. Its like th Bob Ross of the desktop world, one look at him and you know you can make anything.

    GTK# however is an abomination and must die.

    And WinForms looks like crap when you dig into WPF. Of course the saving grace is that WPF doesn't have a learning curve, it has a learning CLIFF. Hundreds of feet tall. Then again, if you're a Linux-er, a learning cliff is exactly what you love... so.



  •  @blakeyrat said:

    @chikinpotpi said:
    @TheChewanater said:
    This is why I like GTK.  By default, all labels (including Buttons, Treeviews, etc) are rendered as plaintext, but formatting can be enabled with a simple bool in the label's constructor.
    agreed GTK is pretty rad, though everything is cumbersome compared to .NET winforms. Its like th Bob Ross of the desktop world, one look at him and you know you can make anything. GTK# however is an abomination and must die.
    And WinForms looks like crap when you dig into WPF. Of course the saving grace is that WPF doesn't have a learning curve, it has a learning CLIFF. Hundreds of feet tall. Then again, if you're a Linux-er, a learning cliff is exactly what you love... so.

    I like winforms because if you stick to the system colors/fonts the UI takes on the look of the current OS and theme.  I don't do WPF, but since the rendering is done using DirectX (I believe) you're not going to have that luxury, I presume.  Also, UI design doesn't get much easier than with winforms.



  •  @blakeyrat said:

     Of course the saving grace is that WPF doesn't have a learning curve, it has a learning CLIFF. Hundreds of feet tall whining

    @frits said:

     

    I like winforms because if you stick to the system colors/fonts the UI takes on the look of the current OS and theme.  I don't do WPF, but since the rendering is done using DirectX (I believe) you're not going to have that luxury, I presume.  Also, UI design doesn't get much easier than with winforms.

    Learn it, you will profit from it and it is very good once you get use to it, much better and easier than winforms, also you can tell it which renderer and style use so there...

    The whole idea was that artsy people designed the UI using XAML (the fact that looks like xml is an advantage to them) without the brainy people having to fret about this and focusing in the other parts because let us face it, most programmer can't design shit even if their lives depended on that.



  •  @frits said:

    I like winforms because if you stick to the system colors/fonts the UI takes on the look of the current OS and theme.

     This is incorrect.  Winforms looks like crap on Linux, but GTK looks native anywhere.

     



  • @TheChewanater said:

    but GTK looks native anywhere.

    Ha.

    Ha ha ha ha ha!!!

    AHA ha ha ha ha ha ha hahaha!!!!!

    Edit: of course the real sadness here is that WinForms isn't designed to be portable, whereas GTK is. Fail.



  • @TheChewanater said:

     @frits said:

    I like winforms because if you stick to the system colors/fonts the UI takes on the look of the current OS and theme.

     This is incorrect.  Winforms looks like crap on Linux, but GTK looks native anywhere.

     

    My target with Winforms is always Windows using the real™ .Net framework.  I don't know from Mono...or GTK. 

    BTW-I didn't know Linux had a "native" look.



  • @frits said:

    BTW-I didn't know Linux had a "native" look.

    <puts on flame retardant suit>



  • @b-redeker said:

    @frits said:

    BTW-I didn't know Linux had a "native" look.

    <puts on flame retardant suit>

    *Snicker*   

    Not really intentional, but I must admit that was a little imflammatory. It's not my fault some people worship their OS like a deity.



  • @serguey123 said:

    @frits said:

     

    I like winforms because if you stick to the system colors/fonts the UI takes on the look of the current OS and theme.  I don't do WPF, but since the rendering is done using DirectX (I believe) you're not going to have that luxury, I presume.  Also, UI design doesn't get much easier than with winforms.

    Learn it, you will profit from it and it is very good once you get use to it, much better and easier than winforms, also you can tell it which renderer and style use so there...

    The whole idea was that artsy people designed the UI using XAML (the fact that looks like xml is an advantage to them) without the brainy people having to fret about this and focusing in the other parts because let us face it, most programmer can't design shit even if their lives depended on that.

    The UI's in the applications I work on are very simple.  There is really no compelling reason to switch to WPF to render a form that has a single menu bar, 5 or 6 buttons and a large picture box.  Also, the chance of us getting assistance from graphic designer types are slim to none.

     



  • @frits said:

    BTW-I didn't know Linux had a "native" look.

    Sure it does.



  • @Z1_Jacob said:

      Oh my, this works on my Java game creation tool.

     

    What tool are you using there?



  • @blakeyrat said:

    [quote user="TheChewanater"]but GTK looks native anywhere.

    Ha.

    Ha ha ha ha ha!!!

    AHA ha ha ha ha ha ha hahaha!!!!!

    Edit: of course the real sadness here is that WinForms isn't designed to be portable, whereas GTK is. Fail.[/quote]

    I'm sure what he really meant to say is that GTK is native almost everywhere.

    I mean, you've got Ubuntu, Kubuntu, Xubuntu, Debian, Knoppix, Symphony, Xandros, Arch, Fedora, Red Hat, SUSE, Yellow Dog, Slackware, and many, many, more.

    The only systems on which it looks bad are just two obscure ones that nobody uses anyways

    Bonus thought: I'm surprised the thread's made it this far without a "UI in Java is TRWTF" post.



  • @MiffTheFox said:

    I'm sure what he really meant to say is that GTK is native almost everywhere.

    I mean, you've got Ubuntu, Kubuntu, Xubuntu, Debian, Knoppix, Symphony, Xandros, Arch, Fedora, Red Hat, SUSE, Yellow Dog, Slackware, and many, many, more.

    The only systems on which it looks bad are just two obscure ones that nobody uses anyways

    Oh gotcha, I didn't know the Linux Reality Distortion Field had redefined "anywhere". I'll add that to my notes.

    @MiffTheFox said:

    Bonus thought: I'm surprised the thread's made it this far without a "UI in Java is TRWTF" post.

    Do we really need one?



  • @MiffTheFox said:

    The only systems on which it looks bad are just two obscure ones that nobody uses anyways
     

     

    Wrong.

     

    GTK on Windows .  GTK wins.

    Winforms on Linux.  Winforms fails.



  • @frits said:

    The UI's in the applications I work on are very simple.  There is really no compelling reason to switch to WPF to render a form that has a single menu bar, 5 or 6 buttons and a large picture box.  Also, the chance of us getting assistance from graphic designer types are slim to none.

    I feel sorry for your userbase and for you, but jokes aside if you got some time, learn it if only for the sake of knowlodge and becoming a better professional and whatnot



  • Hehe. I noticed the same thing somewhen in 2009 (but at a completely different position where it actually mattered more) and out came CVE-2009-1107.

    http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1107

    (I don't know if anybody posted a POC anywhere; although I was the submitter, I did not. But since then lots of more critical vulns have been found (and were fixed) for Java Applets so maybe it does not really matter... Hint: The DN of a certificate (shown in the certificate dialog) can start with a html tag, too :) Writing a POC (if you find a vulnerable JRE) is left as an exercise to the reader)



  • @TheChewanater said:

    GTK on Windows .  GTK wins.
     

    Not a chance, sorry. GTK may look good for maybe even half a minute. But as soon as you want to open a file, select text, drag something or, just accidentally click on a label, it loses horribly.

    Besides, even on your screenshot it starts to crumble. On the first tab we have already a broken 3D effect in the spin buttons; On the second tab there are useless scrollbars floating around in space (as opposed to be on the edge of a 3D box) and the ugliest column headers I've ever seen. Consistent spacing, have you guys ever heard of it? Sure those are miniscule details. But they add up.



  • @PSWorx said:

    Filed under: Let the flame wars begin!

    I called it a little early but at least I'm safe and warm now.



  • @TheChewanater said:

    Wrong.

     

    GTK on Windows .  GTK wins.

    I'm sorry, I'm confused... is that supposed to be a good example, or a bad example?

    Once again, proving that people who think GTK is "good enough" simply do not have a careful eye. (To be generous.) Because almost everything about those screenshots is wrong, from the amount of padding in the window to the icons on the buttons. Almost everything.

    @TheChewanater said:

    Winforms on Linux.  Winforms fails.

    You missed the point here, too. WinForms isn't designed to be cross-platform. The fact that it works at all is the surprising part here.



  •  @blakeyrat said:

    You missed the point here, too. WinForms isn't designed to be cross-platform. The fact that it works at all is the surprising part here.

    To be honest, I've heard that exact argument too often from linux geeks. "You should be glad that wireshark/gimp/inkscape/whatever works at all on windows. So don't you get ideas that they should look pretty or be easy to use, too..."

    But I don't know what's the problem. WinForms looks, well, exactly like Windows. I don't see what's particularly ugly about it.



  • @PSWorx said:

    But at least I can offer your a java source that resets your router as soon as you mouse over some method to look up the javadoc:

     /** <img src="http://url/of/your/choice"> */

    Well, routers that use GET for reset may be hard to come by these days. Though a few years ago I worked at a company that developed a router where all configuration changes were done by GET. And the config server was by default accessible from internet IP address, too. Neat.

     



  • @TheChewanater said:

    Winforms on Linux.  Winforms fails.

    Notepad is NOT built on Winforms. It's plain Win32 API, as plain as it could be. It's simply a container for standard EDIT control, without any fanciness.



  • @alegr said:

    @TheChewanater said:

    Winforms on Linux.  Winforms fails.

    Notepad is NOT built on Winforms. It's plain Win32 API, as plain as it could be. It's simply a container for standard EDIT control, without any fanciness.

    I took his word for it and assumed it's a WinForms Notepad lookalike.



  • @alegr said:

    @TheChewanater said:

    Winforms on Linux.  Winforms fails.

    Notepad is NOT built on Winforms. It's plain Win32 API, as plain as it could be. It's simply a container for standard EDIT control, without any fanciness.


    Fine, if you must see a Winforms app on Linux.

    http://www.mono-project.com/files/7/71/Nunit1.png

     



  • @TheChewanater said:

    @alegr said:

    @TheChewanater said:

    Winforms on Linux.  Winforms fails.

    Notepad is NOT built on Winforms. It's plain Win32 API, as plain as it could be. It's simply a container for standard EDIT control, without any fanciness.


    Fine, if you must see a Winforms app on Linux.

    http://www.mono-project.com/files/7/71/Nunit1.png

     

    See? He was lying to us. And admitting to it! Check your morality at the door before you use Lunix!

    (That UI is hilariously bad. But I'd still rather use it than a GTK app on Windows.)



  • @serguey123 said:

    @frits said:

    The UI's in the applications I work on are very simple.  There is really no compelling reason to switch to WPF to render a form that has a single menu bar, 5 or 6 buttons and a large picture box.  Also, the chance of us getting assistance from graphic designer types are slim to none.

    I feel sorry for your userbase and for you, but jokes aside if you got some time, learn it if only for the sake of knowlodge and becoming a better professional and whatnot

    It has all it needs.  Would you have me add some extra doohickies just for fun?  Simple UI design is better in my case.  My end users are mechanic/technicians who follow explicit hook-up instructions one picture/description at a time.  All they want is my software to tell them what box to replace.  All the fun coding is everywhere-not-UI-related anyway.  UI frameworks come-and-go, a "better professional" knows how to abstract them away from the sane part of the code.

     



  • @PSWorx said:

    Not a chance, sorry. GTK may look good for maybe even half a minute. But as soon as you want to open a file, select text, drag something or, just accidentally click on a label, it loses horribly.

    Unfortunately, I (as a Linux user) must agree to this. When it comes to portability, GTK loses badly. Even if it works and can look kinda right, it still doesn't actually use the native controls. Which means that differences across versions of the host OS are not reflected in GTK widgets. And any external tools that might poke at the native controls in the application will fail with GTK.

    wxWidgets is supposed to get it right. AFAIK it's not even a complete widget framework by itself, but just a set of wrappers around GTK, Qt, winapi, Cocoa or whatever the host is using.

    When it comes to C++ widget frameworks on Linux though, Gtkmm is my favorite. Not that I write traditional 2D UIs too often, as most of my programs utilize 3D graphics.



  • @tdb said:

    When it comes to C++ widget frameworks on Linux though, Gtkmm is my favorite. Not that I write traditional 2D UIs too often, as most of my programs utilize 3D graphics.

     

    May I suggest that you try Qt (which is now dual-licensed under either a commercial license, or LGPL).



  • @bullestock said:

    @tdb said:

    When it comes to C++ widget frameworks on Linux though, Gtkmm is my favorite. Not that I write traditional 2D UIs too often, as most of my programs utilize 3D graphics.

     

    May I suggest that you try Qt (which is now dual-licensed under either a commercial license, or LGPL).

    I'm using it at work, due to political reasons. There are some things I don't like about it:

    It integrates poorly with C++ stdlib. It was originally designed at a time when C++ was still under development, so it has custom containers. Converting from/to the stdlib versions requires jumping through hoops that make code unnecessarily verbose.

    Using int of sizes is just wrong. A rectangle with negative width or height is borderline acceptable for cases where you might want to mirror something, although I'd prefer a separate flag. And using int for widget dimensions avoids some ugliness with C++ type promotion rules. But who ever heard of a vector or list with a negative number of elements?

    It uses a nonstandard way of implementing its signals and slots. It has this custom preprocessor called moc (meta object compiler) which generates some support code for them. Every class that wants to use signals or slots must be derived from QObject and contain a specific macro at the top of it. libsigc++ (used by Gtkmm for the same purpose) is standard C++ and has a much cleaner interface.

    The signals and slots are checked at runtime. A program will compile just fine if you try to connect to a non-existent signal. It will compile if you try to connect a function with the wrong signature. If you derive from QWidget and forget to put the Q_OBJECT macro in your own class, your slot declarations are silently dropped. All of these will only become apparent at runtime, sometimes with misleading messages (such as "Object::connect: No such slot QGLWidget::tick()" when I tried to connect to the tick() slot of my own class). Again, with libsigc++ all of these would be compile-time errors (although I admit the template error messages from the compiler can be at least as cryptic if one is not used to them).

    It's a big damn framework that tries to force all of it on you if you want to use some part of it. Starting from their own build system. The poor integration with the standard library makes it unnecessarily difficult to use Qt for only widgets and other libraries for other parts of the program. I just don't like that kind of vendor lock-in.



  • @blakeyrat said:

    @TheChewanater said:

    @alegr said:

    @TheChewanater said:

    Winforms on Linux.  Winforms fails.

    Notepad is NOT built on Winforms. It's plain Win32 API, as plain as it could be. It's simply a container for standard EDIT control, without any fanciness.


    Fine, if you must see a Winforms app on Linux.

    http://www.mono-project.com/files/7/71/Nunit1.png

     

    See? He was lying to us. And admitting to it! Check your morality at the door before you use Lunix!

    (That UI is hilariously bad. But I'd still rather use it than a GTK app on Windows.)

    On Windows NUnit is just as ugly as that screenshot on Linux. This is not a WinForms on Linux fail. It's an NUnit fail

    BTW, why do Linux lovers always have to compare with Windows XP. I'd appreciate it if TheChewanater could post an example of GTK on Windows 7 with aero enabled



  • @bjolling said:

    I'd appreciate it if TheChewanater could post an example of GTK on Windows 7 with aero enabled



  • @ender said:

    @bjolling said:
    I'd appreciate it if TheChewanater could post an example of GTK on Windows 7 with aero enabled
    snipped image
    Thanks, but you don't show if standard Windows 7 features are enabled or supported like a decent aero preview, jumplists or the progress bar overlay on the icon in the Windows taskbar



  • @tdb said:

    @PSWorx said:

    Not a chance, sorry. GTK may look good for maybe even half a minute. But as soon as you want to open a file, select text, drag something or, just accidentally click on a label, it loses horribly.

    Unfortunately, I (as a Linux user) must agree to this. When it comes to portability, GTK loses badly. Even if it works and can look kinda right, it still doesn't actually use the native controls. Which means that differences across versions of the host OS are not reflected in GTK widgets. And any external tools that might poke at the native controls in the application will fail with GTK.

    It's worse than that, because some of those "external tools" are accessibility tools, like tablet pen input, speech input, or screen readers. Meaning that if you choose GTK, you're alienating tons of users-- all users on a tablet, potentially all users on a touchscreen, all users using a screen reader, most users who have changed their default Windows theme to largify the font or increase contrast, etc.

    (Admittedly, the tablet utilities in Windows do have a mode where you can write your text in another window, then quickly copy&paste it into the original control you tried to write in. This isn't GTK not being shit, it's whoever at Microsoft wrote the tablet utility going above-and-beyond.)



  • @bjolling said:

    @ender said:
    @bjolling said:
    I'd appreciate it if TheChewanater could post an example of GTK on Windows 7 with aero enabled
    snipped image
    Thanks, but you don't show if standard Windows 7 features are enabled or supported like a decent aero preview, jumplists or the progress bar overlay on the icon in the Windows taskbar

    I think it's pretty safe to say they aren't.



  • So, can anyone recommend a great GTK app?

    This isn't trolling, I'm genuinely interested but if I look at the GTK app list I don't see anything I'd download. Or is there a better site?

    BTW that URL is... interesting.



  • @b-redeker said:

    So, can anyone recommend a great GTK app?

    This isn't trolling, I'm genuinely interested but if I look at the GTK app list I don't see anything I'd download. Or is there a better site?

    BTW that URL is... interesting.

    On the first page is Inkscape, which is a great application... if you need to create or edit SVG files. It'd be pretty useless for, say, spreadsheets. I'm sure many other applications on that list are also great for their intended purpose.

    I can't really wrap my head around your question. It's like asking recommendations for a tool. Would you like a hammer, or a saw, or perhaps some sandpaper?

    Some GTK applications I use are Inkscape (vector graphics), Gimp (bitmap graphics), Abiword (word processing; mostly looking at documents from other people), Gnumeric (spreadsheets), Evince (PDF viewer). Perhaps one of those would be suitable for you? You could also look at the "screenlets" section of that listing, it seems to contain small toy applications that might be what you're looking for.

    With all due respect, are you perhaps an iPhone or Android user? I can imagine that the app stores for those will promote the kind of behavior that has people looking for just "an app" without any specifics as to which kind of app.


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.