Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - texus

Pages: 1 [2] 3 4 ... 95
Help requests / Re: menu bar colors when enabled/disabled
« on: 09 August 2019, 19:07:38 »
The color not being updated when disabling and enabling the widget has actually been fixed already. Try building the version from github:

is there a way to change the menu item text?
This is currently not possible. You will have to remove the items and add them again (either all menus or just the menu in which an item needs to change by calling removeMenuItem for each item).
If you want to have spaces in front of all items and only have the star in front of one item then you need to update multiple items anyway and recreating the menu might not be such a bad solution.

If it were possible to change an individual item text, how would you want the API to look like?
menuBar->setMenuItemText("menu", "menuItem2", "> menuItem2");
menuBar->setMenuItemText("menu", "> menuItem2", "menuItem2");
menuBar->setMenuItemText("menu", 2, "> menuItem2"); // 2 being the index
menuBar->setMenuItemText("menu", 2, "menuItem2");

The first one looks nicer to me, but for the second one you don't need to care what the current text is to change it. On the other hand, the first one would be easier to extend to sub-menus.

Purely as information on how to improve the MenuBar in the far future, would you still need this feature if it were possible to display an image in front of menu items (either a unique image per item or just a single "selected" image that is used in front of any item that gets selected)? Or if there were optional checkboxes in front of items?

Help requests / Re: Connecting multiple signals
« on: 30 July 2019, 08:01:47 »
I just remembered that since v0.8.4 you can also just use the "Changed" signal instead of connecting to both checked and unchecked.

Help requests / Re: Connecting multiple signals
« on: 29 July 2019, 22:05:50 »
The functionality wasn't removed, just changed. There is a connect function that takes an initializer_list as parameter, so you now have to write the following:
my_checkbox->connect({"checked", "unchecked"}, [](bool status){ std::cout << status << '\n'; });

Help requests / Re: Visual C Internal Compiler Error
« on: 21 July 2019, 12:27:15 »
Feel free to copy the code.

Help requests / Re: Visual C Internal Compiler Error
« on: 21 July 2019, 09:01:22 »
This does look like a bug in the compiler itself. It isn't the first time the signal code has given issues with different compilers (I had compile issues with GCC, clang an VC++), but these were all solved before the new signal code was released. So it seems like they changed something in VS2019 which causes it to fail to parse the code properly. Technically this is not an issue with my code (unless it turns out I would be using code that isn't compliant with the c++ standard which shouldn't be the case here) and it should be fixed by the compiler developers.
The only thing that can be done from my side is rewrite the code a little bit in the hope that the compiler suddenly supports it (the other compiler issues were also solved that way, by simplifying the code, such as turning one long line into two lines).

TGUI_USE_CPP17 is not something you need to define. I couldn't use c++17 code in TGUI for compatibility reasons but I still wanted to play around with c++17 so I added some code behind the undocumented TGUI_USE_CPP17 define. If the error you got would have been inside part of the code where a c++17 alternative was available then it could have just been solved by defining it, but that isn't the case here.

Line 148 in SignalImpl.hpp is on a opening brace, so it is hard to say if it fails on the line above or below, but I would guess it is on the line above. Could you try changing "decltype(auto)" on line 147 to "std::function<void()>" (and maybe also on line 155) and maybe also change the "{}" to "()" after index_sequence_for on line 149 to see if it compiles with these changes?
If it still doesn't compile after these changes then there isn't much I can do, I don't see any other ways to simplify that code more. It compiles fine with all other compilers, so it would be something that VS2019 needs to solve.

General Discussion / Re: Adding long lines in ChatBox
« on: 18 July 2019, 19:23:20 »
Is it possible that your font just renders that way? Because the only thing the ChatBox should be doing is adding newline characters at the end of the line, I don't think it positions those lines manually.

General Discussion / Re: Adding long lines in ChatBox
« on: 18 July 2019, 18:39:23 »
Are texts overlapping for you? The lines should just be positioned below each other. It still works with some simple code here.

General Discussion / Re: Kitchen Sink
« on: 24 June 2019, 19:07:55 »
In gui.txt just add "OpacityDisabled = 0.3" in ChildWindow section and the code will hung  in "mGuiTheme.load("resources/gui.txt");"
I can't reproduce hanging, but last time you said "gave me an exception" so I'm assuming that is still what you mean. The reason is probably because you forgot a semi-colon behind the line (if you catch the tgui::Exception that gets thrown it will likely tell you that parsing failed on that line, maybe even mentioning which character it read). You forgot this for all widgets, but the parser is more forgiving when it is the very last line in the section.

General Discussion / Re: Kitchen Sink
« on: 23 June 2019, 22:39:41 »
However there is a problem with menubar and opacity of texts color when they get enabled.
It definitely looks like that with the White theme, but if the issue you were seeing is the one that I just fixed then the problem was actually just the text color, not the opacity.

Also a setopacitydisable value in gui.txt for messagebox gave me an exception.
Did you make a typo when making the forum post or are you actually using "setopacitydisable"? Because it should be "opacitydisabled" (without "set" in front and with a "d" at the end).

Now we have something, i think. 8)
Yep, you did a great job.
Now we just need to get it integrated with TGUI.

Do you think there should be a downloadable exe for the example on the website? If so, maybe you could build the executable statically (including linking statically to standard library) so that it can run on any computer. It would require rebuilding SFML with SFML_USE_STATIC_STD_LIBS and TGUI with TGUI_USE_STATIC_STD_LIBS.

Something should still be done about The KitchenSink folder is 6.2MB of which 4.3MB is an unused zip file. Whether you keep all the files or except for the font files or whether you do what I suggested earlier ("Maybe the font should be moved to a new subfolder which would contain the README, FreeSerifBold.otf, CREDITS, COPYING and AUTHORS files.") is up to you. When the example gets included with TGUI, every download is going to increase by the size of that KitchenSink folder. For this reason it might also be better to not ship the gui.psd file with the project either, it almost takes up half of the size if you remove the zip. If there is going to be a page on the website about the example I can still put the psd file there.
(I know my tests folder is a few MB too where it could also be argued that it shouldn't be in the project either if I want to keep things small, but that isn't an excuse to add even more bloat than there already is).

General Discussion / Re: Kitchen Sink
« on: 20 June 2019, 22:56:19 »
The issue with the knob not responding has been fixed, but you also need to add "ImageRotation = 90;" to the theme to make it point in the right direction.

Maybe you could make a base class with virtual functions for all these tabs? Then you could get rid of the switch cases in processEvents, update and on top of loadTab in cKitchenSink.
Are the cases in cVirtualKeyboard::handleEvent needed? Can't you just check if "index != -1"?

I'm happy with how it looks. The code style and naming of variables isn't exactly the same as used internally in TGUI, but that is fine for example code, everyone is going to have their own convention anyway.
I've only briefly looked at the code. Some code improvements could be made such as replacing raw arrays with std::array and using more modern c++ for randoms, but those aren't important changes, I'm fine with the code being like it is now. The code can always be improved in the future.

General Discussion / Re: Kitchen Sink
« on: 18 June 2019, 18:32:15 »
I added "" because it contains credit file for author and maybe it should added in resources.
I agree that the credits should be included, but that zip contains several different fonts of which only one is needed, so it is wasted space. Maybe the font should be moved to a new subfolder which would contain the README, FreeSerifBold.otf, CREDITS, COPYING and AUTHORS files. I don't think we need to keep the INSTALL, CHANGELOG and other font files. I would keep the README just because it contains the exception that allows the font to be used without requiring the program to be licensed under GPL.

I really can not figure out why the label with scroll bar do not show the beginning of the text.
I can't reproduce this. If I don't call setScrollbarPolicy then it only shows the start of the text as expected, but I don't know in what situation it would only show the end of the text.
Edit: I didn't look at the program yet, so I didn't see you already included the label. I'll have a look at the code later to figure out why it is happening.
Edit2: The issue is with setVerticalAlignment(Center), but you probably shouldn't be using that anyway when you have a vertical scrollbar.
Edit3: Fixed.

Also, i can't set min max form size on a message box.
Message box wasn't supposed to be resized and it's size would depend on the contents. A maximum size would be useful as it would allow word-wrapping on the text. For the label the behavior is simple, but I'm not sure what to do if the buttons exceed the size. The whole widget probably needs an overhaul, maybe also making the sizes of the buttons and the spaces between them configurable. So this probably isn't something that I would implement on short-term.

General Discussion / Re: Kitchen Sink
« on: 17 June 2019, 22:45:09 »
- SFML_libs.hpp is specific to Visual Studio and should indeed be removed once this gets integrated with the TGUI examples which compile and link with cmake.
- defines.hpp should be removed. Not because the file is so small, but because I actually don't want to see SAFE_DELETE being used. TGUI tries to be a modern c++ library, it already requires c++14 as a minimum, so it would be best if the examples didn't use new and delete. Based on a quick glance at the code I think it could be replaced with std::unique_ptr.
- Why was defineImprovedEnum.h used? Are there places where it is used where a normal enum was be too limited?

Some minor comments:
- and flags/Thumb.db in the resources folder can be removed I guess.
- Text colors of radio buttons in "Buttons" tab aren't the same (only the first one is really readable)
- The themed knob doesn't move correctly. ImageRotation in gui.txt should be 90, the current value seems to be a copy-paste error.
- I don't really like the horizontal scrollbar for ScrollablePanel as there is no contents to the right. Calling panel->setHorizontalScrollbarPolicy(Scrollbar::Policy::Never) would probably be better in this case (or changing the content width to not include the vertical scrollbar).
- A label with scrollbar would really look great on the first tab :)

I'll put a link to this forum topic on discord tomorrow so that your work gets a few more views.

General Discussion / Re: Kitchen Sink
« on: 15 June 2019, 17:22:18 »
The above code kills the selected tab. When a tab bar goes disabled must not lose his selected index.

The above code (setting new font) sets all text data in scrollpanel to lowercase.
I can't reproduce it. I also don't see how the font could affect the string data. If the font you are setting has capital letters then you should create a minimal program and post it together with the font.

Help requests / Re: Increasing scroll sensitivity
« on: 14 June 2019, 22:35:33 »
In the future I should probably find a better solution so that I can add it to all widgets with a scrollbar without lots of code duplication, but for now I just added setVerticalScrollAmount and setHorizontalScrollAmount functions to the ScrollablePanel class. You can download the latest version from github.

General Discussion / Re: Kitchen Sink
« on: 14 June 2019, 19:43:19 »
I have some hard times with "ScrollablePanel"
Theme files just don't work like that, you can't reference to another section (it would be nice if it was possible though, then you wouldn't have to repeat the information). It should look like this:
ScrollablePanel {
    BackgroundColor = rgba(100, 100, 100, 255);
    BorderColor     = rgba(0, 0, 0 , 255);
    Borders         = (1, 1, 1, 1);
    OpacityDisabled = 0.3;

I think knobs need some improvements.
Yeah, that widget didn't get much attention, it only has minimal functionality.

I haven't worked with knobs a lot, so it is possible that I'm disagreeing with some of these things due to lack of experience, but I don't agree that the improvements you suggest should be how the knob works. Maybe such behavior should be optional and even if I decide not to make them the default I could still add an option to make them work that way.

I can think of some situations where you would want such behavior, so maybe there are just 2 different types of knobs: those that simulate real-world knobs and those that just exist to select a value.
The kind of knob I tend to think about falls in the second category (examples, other example). They react immediately on mouse down and the value follows the mouse position, even if it crosses from 100% to 0% or passes through the center of the knob from 25% to 75%.

When i pressed down left mouse the indicator must no be moved to the direction of mouse point but only if i start moving the mouse while it still down.
I guess this also means that you want the knob to move based on how much you move the mouse as opposed to jumping straight to the mouse position?

Also when i double click on them they should reset.
Is this some kind of standard behavior somewhere? This could be done in user code if a DoubleClick event existed.

Also they must stop on min or max and not moving around.
That doesn't sound so easy to implement. It means the thumb must not jump to your mouse position but follow the movements you make. In such scenario I'm not sure how the thumb should respond if you move the mouse through the center of the knob to the other side.

Almost finished.
Looking even better.
I with I could run it in a browser and put it on the webpage. Maybe with TGUI 0.9, or maybe SFML adds support for emscripten, who knows.
Part of me still can't believe that that ListView was rendered with TGUI :)

Some more nitpicking:
- When you close the keyboard, the "Buttons" tab is no longer selected.
- In Misc2, shouldn't it say "Grid" instead of "Group"?

Pages: 1 [2] 3 4 ... 95