Coder Social home page Coder Social logo

eclipse-threadx / guix Goto Github PK

View Code? Open in Web Editor NEW
333.0 30.0 137.0 543.08 MB

Eclipse ThreadX GUIX Studio provides a complete, embedded graphical user interface (GUI) library and design environment, facilitating the creation and maintenance of all graphical elements needed by your device.

Home Page: https://github.com/eclipse-threadx/rtos-docs/blob/main/rtos-docs/guix/index.md

License: MIT License

CMake 0.03% C 99.37% Shell 0.01% Batchfile 0.01% C++ 0.51% Python 0.08% Inno Setup 0.01% PowerShell 0.01%
embedded gui iot mcu microcontroller rtos eclipse-threadx

guix's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

guix's Issues

Problem in executing using GUIX studio 6.1.0.0 in windows OS

I installed GUIX studio 6.1.0.0 in the windows operating system but the program does not start and display an error.

how to resolve these issues?

error message title:
The procedure entry point UiaDisconnectProvider could not be located in the dynamic link library UIAutomationCore.DLL

Crash while generating

Hi,
I'm getting a Guix Software crash when I try to generate ressources.
Is there a log file somewhere I can send you and where is it located?

Thank you.

We want to install GUIX Studio locally

Hi!

We have used GUIX Studio on Windows10 at company.
We can't download from the Store app due to company IT policy.
Previously, Windows installer was prepared, could you prepare a package that can be installed locally?

How do I send different events after pressing a button?

How do I send different events after pressing a button? Different interfaces, the same buttons also have different functions and need to send different events. How to deal with this?
the device no touch panel, only physical keys,

In rare cases, the sprite does not stop updating.

Hello.
I use gx_sprite_start() to start updating sprites, and then call gx_sprite_stop() to stop the sprite updating, but in rare cases the sprite updating does not stop.
In this case, I found out that _gx_system_timer_stop(), which is called in gx_sprite_stop(), is causing an error.

In the normal flow
gx_sprite_start()
=>
gx_system_timer_update()
=>
At timer expiration
_gx_system_timer_stop()
=>
GX_EVENT_TIMER event issued
=>
gx_sprite_update() in response to GX_EVENT_TIMER event
=>
_gx_system_timer_start() re-set timer
=>
gx_sprite_stop() at this timing
=>
Stop updating

But if
In case of an error
gx_sprite_start()
=>
gx_system_timer_update()
=>
In case of timer expiration
_gx_system_timer_stop()
=>
GX_EVENT_TIMER event issued
=>
gx_sprite_stop() at this timing
 Error because stop() has already been done
=>
gx_sprite_update() in response to GX_EVENT_TIMER event
=>
_gx_system_timer_start()Reset timer
=>
After that, update() will keep running.

and between the stop() by update() and the start() by GX_EVENT_TIMER
I think this happens when gx_sprite_stop() is called.
This is due to the fact that gx_sprite_stop() has a call-prohibited section, but please let me know how to solve this problem.

Can resource data in binary file format be loaded from FileX?

I have external NOR Flash that is formatted with Azure FileX, and am wondering if I can use gx_binres_theme_load or similar to load a resource data binary file that is stored on the filesystem?
From my understanding I would need to expose the file's data as a raw pointer, which would require copying the file to RAM first (not an option given RAM constraints). Is there some functionality I'm missing that could make this work?

Macros incorrectly terminated with a semicolon

I've noticed 2 macros in gx_api.h are incorrectly terminated with a semicolon:

  • gx_single_line_text_input_buffer_clear on line 4778
  • gx_single_line_text_input_buffer_get on line 4779

I haven't spotted any others, but I haven't done an exhaustive search.

may surport extend spi flash?

in most project ,it can not using the extend flash as qspi flash with remaped function, only using spi flash to save font or image data ,
if we can us extend spi flash to read glyphs, i think the function is very helpful

Unable to import into latest GUIX Studio

Describe the bug
We are able to open and export a GXP project in GUIX Studio version 5.4.2.9. However, when we attempt to open the same project file in Azure RTOS GUIX Studio version 6.2.0.1, the application aborts (it is killed) without any notifications.

Please also mention any information which could help others to understand
the problem you're facing:

  • Building for cortex_m4
    - Azure tx_api 6.1.10
    What toolchain and environment?
    - Azure RTOS GUIX Studio 6.2.0.1
    What have you tried to diagnose or workaround this issue?
    - tried using the -o output.log

To Reproduce
Steps to reproduce the behavior:

  1. Open GXP file using version 6.2.0.1
  2. See error

Expected behavior
Project file is read and a project screen is displayed

Impact
We are unable to use the product.

Logs and console output
The -o option does not provide any clues.

Additional context
If you can provide me with a method to give you better verbose, I will try. it.

Set display orientation during running

Hi,
In my project, it needs to set the display oratation of LCD according to the placement position during operation, sometimes 90 degrees(clockwise or counterclockwise) and sometimes 180 degrees.
Previously used GUI_SetOrientation() in emWin is implemented. No similar function is found in GUIX. Can it be added in GUIX later versions?
Thanks.

Partial Framebuffers

Is GuiX able to handle Partial Framebuffers like TouchGFX?
Partial Framebuffers is a concept with at least two buffers. While one is transfered to the display, the others can be rendered and written. That works like a fifo and reduces the amount of needed RAM, because instead of a full screen framebuffer, two (or three) very small framebuffers are used.

gx_binres_theme_load consumed to large RAM

Hi there,
I'm using GUIX Studio generated font resource as a binary file. The binary file is about 10MB. I put the bin file to external qspi flash and maped the flash to MCU with XIP mode. When I use gx_binres_theme_load function to load the font table. The memory allocate is failed. Because my MCU has only 600KB ram. But this function try to malloc 1572KB memory. Why this function need to much memory instead of get font data directly form bin data ? Any help would be much appreciated.

How drawing gradient color

Hi,
I want to draw a slider using gradient color (black to a color returning by the application).
Since I don't know which color will be used by the application, I need to creat it at runtime.

I think I should use the gx_utility_gradient_create function but I don't know how to use it and draw a pixelmap containing my gradient color.

Is someone has a code snippet exemple to help me how to do?
Thanks in advance!
Richard

_gx_system_font_8bpp Define and declare issues

1.In line common/src/gx_system_font_8bpp.c:1133, GX_FONT _gx_system_font_8bpp = {GX_FONT_FORMAT_8BPP, 0, 0, 18, 13, 0x20, gx_font_format_8bpp, 0, 0, 18, 13, 0x20, 0x7e, {font_SansPro_Regular_ttf_18_aa}, NULL };
2.In line common/src/gx_binres_theme_load.c:34, it is extern GX_CONST GX_FONT _gx_system_font_8bpp;
3.It is also extern GX_FONT _gx_system_font_8bpp in the xxxx_resources.c generated using Guix Studio;
4.Why is it not defined asGX_CONST GX_FONT _gx_system_font_mono and _gx_system_font_4bpp = {GX_FONT_FORMAT_8BPP, 0, 0, 18, 13, 0x20, 0x7e, {font_SansPro_Regular_ttf_18_aa}, NULL };

Is it possible to use GUIX Studio export font resource as a bin file seperately ?

Hi , we already know that GUIX Studio is able to export all resource data as a bin file. However, font resource are usually very large, which is not efficient when doing OTA with BLE. In most situlation, pixelmap and strings may need to upgrade while font is not. It is very friendly if we can load font resource and other resource seperately. Any reply would be much appreciated.

GUIX Studio does not generate proper specification code when JPEG support is disabled

Describe the bug
We are unable to compile gui_specifications.c without having to modify the file after we have regenerated the file.

The issue surrounds the setting up of gx_display_driver_jpeg_draw. We disabled JPEG support in e2 studio. gx_display_driver_jpeg_draw is compiled out correctly in gx_display_driver_synergy_dave2d.c, however the flag is being ignored in gui_specifications.

Please also mention any information which could help others to understand
the problem you're facing:

  • Building for cortex_m4
  • Azure tx_api 6.1.10
  • What toolchain and environment?
    - e2 Studio 2022-04 (22.4.0)
    - guix studio 5.4.2.9
  • What have you tried to diagnose or workaround this issue?
    - We have developed a script to replace code (see additional context below) in the file after we have generated new output files from GUIX Studio.

To Reproduce
Steps to reproduce the behavior:

  1. Open e2 studio configuration file.
  2. Add GUIX stack
  3. Add GUIX source
  4. Disable Synergy JPEG support
  5. Rebuild project

Expected behavior
The code should compile without warnings or errors. We assume the pointer will be NULL.

Impact
As of today, we can get by with a script that patches the file. (or hand edit).

Logs and console output

../src/gui/gui_specifications.c: In function '_gx_synergy_display_driver_setup':
'gx_display_driver_jpeg_draw'; did you mean 'gx_display_driver_polygon_draw'?
18413 |     display -> gx_display_driver_jpeg_draw                     = _gx_synergy_jpeg_draw;
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~

Additional context
You should add in PNG flags in case someone decides that they do not require PNG support. #define GX_SOFTWARE_DECODER_SUPPORT

The following code will fix the issue:

#if (GX_USE_SYNERGY_JPEG == 1)
    display -> gx_display_driver_jpeg_draw                     = _gx_synergy_jpeg_draw;
#endif
#if defined(GX_SOFTWARE_DECODER_SUPPORT)
    display -> gx_display_driver_png_draw                      = _gx_display_driver_565rgb_png_draw;
#endif

Canvas uses dynamic memory, no malloc memory for canvas?

Now I don't have it checked in Studio alloccate canvas memory

gx_canvas_create.c -> _gx_canvas_create(...)
It works fine after adding the following code on line 113, otherwise the canvas memory is not assigned

    else
    {
        canvas->gx_canvas_memory = (GX_COLOR*)_gx_system_memory_allocator(memory_size);
        if (canvas->gx_canvas_memory)
        {
            memset(canvas->gx_canvas_memory, 0, memory_size);
        }
    }

Naming conflict with GNU GUIX

I don't know where else to post this; but hasn't the GUIX name already been taken by https://guix.gnu.org/. Coming from that ecosystem, it's abit confusing when I stumbled across this whilst trying to solve some guix(read gnu) related problems. Perhaps(though I bet highly unlikely but it doesn't hurt to try) a rename? You can close this anytime 🤷

Drop-List doesn't render "complex" widgets correctly

If I create a template consisting of a simple window with a text prompt as its child, and then use this template widget for the items in a drop-list, then the drop-list's draw function does not render the child text prompt when drawing the selected item into the drop-list's client area.

This behavior seems to come from the code in _gx_drop_list_draw() which changes the 'size' and 'clip' members of the selected widget, but does not change these members in any of the widget's children, resulting in the draw functions for the children never being called due to the gx_utility_rectangle_overlap_detect() call failing in _gx_widget_children_draw().

Perhaps this should be done using something like gx_widget_shift() instead?

These "complex" widgets do render correctly when they're drawn alongside each other when the drop-list is opened, it's just when rendering the selected widget at the top where the bug appears.
"Simple" widgets without children do always render as expected in the drop-list.

Can GUIX Studio port boldtype font ?

Hi, I have a .ttf font package which contains several font type like bold/medium/regular/light and so on. Can I use GUIX Studio to port a boldtype font? Or generate a runtime bold style from regular style?

keys operation support

I am evaluating the use of GUIX as a user interface in a new project,Our device does not have a touch screen, only a cross button and a few function buttons,Can GUIX support key-based operations, such as switching of widgets focus, input methods, etc.

Any case porting port_smp/linux/gnu causes a deadlock

[DRMMEDIA][I]: Enable vo channel:[1] starting......
[DRMMEDIA][D]: DrmDisplay flow params:[name=drm_output_stream
device=/dev/dri/card0
framerate=0
plane_type=Overlay
ZPOS=1
output_data_type=image:argb8888
]
[DRMMEDIA][I]: open /dev/dri/card0 = 4
[DRMMEDIA][I]: suitable ids:
connector: 56
encoder: 55
crtc: 53
plane: 54
[DRMMEDIA][I]: conn id:[56], enc id:[55], crtc id:[53], plane id:[54], w/h:[1920,720], fps:[60]
[DRMMEDIA][I]: OutputStreamFlow:drm_output_stream, thread_model=1, mode_when_full=3
[New LWP 3009]
[DRMMEDIA][I]: Enable vo channel:[1] finished......
[DRMMEDIA][I]: flow-name OutputStreamFlow:drm_output_stream
[DRMMEDIA][I]: Opened DRM device /dev/dri/card0: driver rockchip version 2.0.0
[DRMMEDIA][D]: alloc_drm_memory: ptr:0xa5b24000, fd:6, handle:1, dev_fd:5, size:1228800
[DRMMEDIA][D]: alloc_drm_memory: ptr:0xa59f8000, fd:7, handle:2, dev_fd:5, size:1228800
[New LWP 3010]
[New LWP 3011]
[New LWP 3012]

Thread 4 "azure_gui" received signal SIGUSR1, User defined signal 1.
[Switching to LWP 3010]
0xa6f95bfc in do_futex_wait.constprop () from /lib/libpthread.so.0
(gdb) bt
#0 0xa6f95bfc in do_futex_wait.constprop () from /lib/libpthread.so.0
#1 0xa6f95d38 in __new_sem_wait_slow.constprop.1 () from /lib/libpthread.so.0
#2 0x0007a9e4 in _tx_linux_timer_interrupt ()
#3 0xa6f8c390 in start_thread () from /lib/libpthread.so.0
#4 0xa6ce872c in ?? () from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)
image

Build error for default example project in GUIX studio

Latest VS 2019. GUIX Studio is installed. Double click a example project .sln under Build and start build. I got following error.

1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(448,5): warning MSB8003: The VCToolsInstallDir property is not defined. Some build tools may not be found.
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\Microsoft.CppBuild.targets(449,5): warning MSB8003: The WindowsSDKDir property is not defined. Some build tools may not be found.
1>TRACKER : error TRK0005: Failed to locate: "CL.exe". The system cannot find the file specified.

how to porting the guix to freertos?

there has a question, some guix wiget need dynamic memeory, need the tx_byte_pool_create() function, but the function in the threadx.
how to fix it?

/* create a byte pool to use for rotating the needle bitmap */
tx_byte_pool_create(&memory_pool, "guix", guix_pool_memory, 1024);

/* install our memory allocation / de-allocation routines */
gx_system_memory_allocator_set(memory_allocate, memory_free);

I'm defined a text prompt,and a timer,in the timer int, refresh the text. the text not change.
but ,test guix + theadx,the text refreshed. because used the function tx_byte_pool_create();

UINT _cbEventWindow_language(GX_WINDOW *widget, GX_EVENT *event_ptr)
{
static uint32_t count = 6;
char buf[1] = {0};

switch (event_ptr->gx_event_type)
{
case GX_EVENT_SHOW:

    gx_system_timer_start((GX_WIDGET *)widget, GUI_ID_Timer0, 1, GX_TICKS_SECOND);

    gx_window_event_process(widget, event_ptr);
    break;
case GX_EVENT_TIMER:
    if (event_ptr->gx_event_payload.gx_event_timer_id == GUI_ID_Timer0)
    {
        sprintf(buf, "%d", count--);
        gx_prompt_text_set((GX_PROMPT *)&(window_language.window_language_prompt_countdown), buf);
    }
    break;

default:
    return gx_window_event_process(widget, event_ptr);

}

return 0;
}

GUIX Studio default pixelmap directory

Hi,

I recently had to re-install various things on my work PC, including GUIX Studio. When I download 6.1.4.0 (the current version in the MS Store), it wants to install in C:\Azure_RTOS\GUIX-Studio-6.1 (note the "dashes".) However, my existing GXP files actually point to C:\Azure_RTOS\GUIX_Studio_6.1 (note the "underscores".) Was this default location changed at some point? This breaks the builds of existing projects.

My underlying question: in GUIX Studio, why can't we delete the 4 default System pixelmaps that are not even used in the project, and completely avoid this issue? RADIO_ON, RADIO_OFF, CHECKBOX_ON and CHECKBOX_OFF.

gx_display_driver_32argb_pixalmap_compressed_alpha_write function takes too long [Question]

Hello,

_gx_display_driver_32argb_compressed_alpha_write function is taking too long. Over 1 second.

The thing is, I am completely redrawing all the display when a change occurs. I generate a REDRAW event from a thread and this event is passed to the GUIX thread via its queue. (I am not using the custom event handlers or draw functions from GUIX studio.) Therefore, I need to send the REDRAW event to GUIX thread.

Display is not updating fast enough, so when I debug I saw the compressed alpha writing is taking too long. (again over 1 second.)

The other strange thing is(I am working with threadX by the way.) the thread which generates the REDRAW event is also working really slow. This is very strange, since I am writing the event to GUIX queue and there is no reason for this thread to work slow.

The other threads are working properly, though. I checked every one of them.

Do you have any idea why this is happening?

gx_prompt_text_id_set doesn't conform to transparency setting

Describe the bug
We are porting from SSP 1.5.2.0 -> 2.3.0.0, using GUIX 6.2.0.1

On the initial splash screen, our prompt widget shows up correctly. WHITE text, transparent on a dark wallpaper background.

However, when we issue a gx_prompt_text_id_set() , the prompt widget shows WHITE text on a WHITE background. Initially, I thought that the transparency seems to have been ignored, but if it had not been used, the background would be BLACK and not WHITE.

Here is the prompt widget configuration prior to calling gx_prompt_text_id_set:

    gx_widget_name    const GX_CHAR *    0x1781ec "selftest_str"    
    gx_widget_parent    struct GX_WIDGET_STRUCT *    0x2005cd80 <splash_screen_3>    
    gx_widget_first_child    struct GX_WIDGET_STRUCT *    0x0 <R_SSP_VersionGet>    
    gx_widget_last_child    struct GX_WIDGET_STRUCT *    0x0 <R_SSP_VersionGet>    
    gx_widget_next    struct GX_WIDGET_STRUCT *    0x2005cee0 <splash_screen_3+352>    
    gx_widget_previous    struct GX_WIDGET_STRUCT *    0x2005cdf4 <splash_screen_3+116>    
    gx_widget_nav_next    struct GX_WIDGET_STRUCT *    0x0 <R_SSP_VersionGet>    
    gx_widget_nav_previous    struct GX_WIDGET_STRUCT *    0x0 <R_SSP_VersionGet>    
    gx_widget_size    GX_RECTANGLE    {...}    
    gx_widget_clip    GX_RECTANGLE    {...}    
    gx_widget_event_process_function    UINT (*)(struct GX_WIDGET_STRUCT *, GX_EVENT *)    0x3cd1d <_gx_prompt_event_process>    
    gx_widget_draw_function    void (*)(struct GX_WIDGET_STRUCT *)    0x3ccf9 <_gx_prompt_draw>    
    gx_widget_status    ULONG    0x10000003 (Hex)    
    gx_widget_style    ULONG    0x50004000 (Hex)    
    gx_widget_normal_fill_color    GX_RESOURCE_ID    0    
    gx_widget_selected_fill_color    GX_RESOURCE_ID    0    
    gx_widget_disabled_fill_color    GX_RESOURCE_ID    0    
    gx_widget_type    USHORT    30    
    gx_widget_id    USHORT    216    
    gx_widget_user_data    INT    0    
    gx_widget_alpha    GX_UBYTE    0xff (Hex)    
    gx_prompt_string    GX_STRING    {...}    
    gx_prompt_text_get_function    void (*)(struct GX_PROMPT_STRUCT *, GX_STRING *)    0x3ce71 <_gx_prompt_text_get_ext>    
    gx_prompt_text_id    GX_RESOURCE_ID    120    
    gx_prompt_font_id    GX_RESOURCE_ID    6    
    gx_prompt_normal_text_color    GX_RESOURCE_ID    6    
    gx_prompt_selected_text_color    GX_RESOURCE_ID    37    
    gx_prompt_disabled_text_color    GX_RESOURCE_ID    6   ```

After the call, the only part of the structure that has changed is the gx_prompt_text_id().  Both gx_widget_status  and gx_widget_style    stay the same (indicating transparency is enabled).

Please also mention any information which could help others to understand
the problem you're facing:
- Building for cortex_m4
- Azure tx_api 6.1.10
- Azure gx_api 6.1.10
- Azure RTOS GUIX Studio 6.2.0.1

** What have you tried to diagnose or workaround this issue?
- gx_prompt_text() does the same thing.

**To Reproduce**
Steps to reproduce the behavior:
1. I have provided the setup of the text widget. Not sure what else I can give you here.

**Expected behavior**
Text should be WHITE on a wallpaper background

**Impact**
Showstopper, can't deliver code.

**Logs and console output**
I have attached the before and after displays.

**Additional context**
Add any other context about the problem here.
![bad_splash png-640x480](https://user-images.githubusercontent.com/108280402/209960501-6a10bd66-75ee-45b3-8503-ff5b59a7420c.png)
![good_splash png-640x480](https://user-images.githubusercontent.com/108280402/209960503-00406947-08c3-4c61-94ff-afcd189a4ffd.png)

2bpp font support

For device that has very limited storage, even 4bpp font may result in a large resource bin file. Is it possible to add 2bpp font support in guix source and studio?

circular_gauge Control error

GUIX version: 6.1.0
Windows: windows10 x64
question:
I used GUIX Studio to create a display page with progress bar, buttons and other controls. These controls can be controlled normally, but when I use the circle_gauge control, there is a problem. I change the angle of the needle every once in a while, and then read Angle, the angle value will change, but no needle is displayed on the screen. The needle will disappear as long as the function gx_circular_gauge_angle_set() is called. Why is this?

GUIX Studio generates incorrect callback signature for GX_STRING_SCROLL_WHEEL_PROPERTIES

Using GUIX Studio 6.2.0 (also tested on 6.1.12):

  • create a new project,
  • add a string scroll wheel to the main window
  • generate the specification files

GUIX Studio generates a GX_STRING_SCROLL_WHEEL_PROPERTIES struct in the specifications.h file. The callback signature incorrectly contains a GX_NUMERIC_SCROLL_WHEEL_STRUCT.

typedef struct
{
    int                 total_rows;
    int                 selected_row;
    GX_VALUE            row_height;
    GX_UBYTE            start_alpha;
    GX_UBYTE            end_alpha;
    GX_RESOURCE_ID      normal_font;
    GX_RESOURCE_ID      selected_font;
    GX_RESOURCE_ID      normal_text_color;
    GX_RESOURCE_ID      selected_text_color;
    GX_RESOURCE_ID      disabled_text_color;
    GX_RESOURCE_ID      wallpaper_id;
    GX_RESOURCE_ID      selected_background;
    GX_CONST GX_RESOURCE_ID  *string_id_list;
    UINT (*callback)(struct GX_NUMERIC_SCROLL_WHEEL_STRUCT*, INT, GX_STRING *);
} GX_STRING_SCROLL_WHEEL_PROPERTIES;

It should be:

    UINT (*callback)(struct GX_STRING_SCROLL_WHEEL_STRUCT*, INT, GX_STRING *);

This can be seen in one of the tutorials: https://github.com/azure-rtos/guix/blob/master/tutorials/demo_guix_scroll_wheel/demo_guix_scroll_wheel_specifications.h#L141

Menu Widget Text Alignment

The 'Text Align' attribute applied to a 'menu' widget in GUIX Studio is not respected in the generated code.
In my project, I have a 'tree_view' which in turn contains a number of 'menu' widgets.
For each 'menu' widget I have set the 'Text Align' attribute as 'Center', and the text is displayed correctly center-aligned in GUIX Studio.

When I save the GUIX .gxp project and inspect the XML code, I see that the <style> value is what I expect it to be - in this case 1610661888 (or 0x6000C000), indicating to me that "GX_STYLE_TEXT_CENTER 0x00004000UL" has been saved.

However, when I generate the C code for my project, the style flags are missing GX_STYLE_TEXT_CENTER - only "GX_STYLE_BORDER_NONE | GX_STYLE_DRAW_SELECTED | GX_STYLE_ENABLED | GX_STYLE_TEXT_COPY" is present, and when running the compiled code on my hardware the text is left-aligned instead of center-aligned.
If I manually edit the generated code to add GX_STYLE_TEXT_CENTER to the style for my 'menu' widgets, then the test is center-aligned as expected.

Lib file for GUIX Studio version 6

Hi

I'm developing a GUIX application on Visual Studio 2019 Professional(Windows10).
I used to use the library files deployed in the folder "C:\Express_Logic\GUIX_Studio_5.6\win32_runtime".
I would like to upgrade the GUIX studio to the version 6 Azure RTOS GUIX Studio.
Could you provide these library files for version 6?
ex. gx.lib, gx_api.h, gx_port.h, gx_user.h, tx.lib, tx_api.h, tx_port.h

Best regards.

Can generic scroll wheel be used as a horizontal scroll wheel ?

Hi, there
We want to use a horizontal scroll wheel. But the default scroll wheel that GUIX have is in vertical direction. Can generic scroll wheel be used as a horizontal scroll wheel ? Or is there any much better way to realize a horizontal scroll wheel ? Any help would be much appreciated.

Touchscreen driver implementation and possibly dead code

While I've been working on implementing touchscreen driver, I've stumbled across the gx_touch_driver_generic_resistive.c file. It looks pretty promising and nicely implements all the structures for tracking touch state and generating all needed events (maybe missing the GX_EVENT_PEN_HOLD - which doesn't exist, but that's something for another ticket). The only problem is, that this file looks like dead code. Functions are all there, but it has neither it's own header nor is part of any other header (for example gx_display.h or gx_api.h).

I was hoping that implementing the touch driver would be similar to implementing a display driver. Which is done by wrapping the default implementation provided by _gx_display_driver_xxx_setup. Similarly the touch driver could be built using default implementation of _gx_touch_driver_generic_resistive_setup. But again that function is not exposed anywhere.

Long story short, it is either that gx_touch_driver_generic_resistive.c is a leftover that should be removed (or at least moved from /common/src to /samples if it only servers as a demonstration) or the gx_display.h is missing three function prototypes for _gx_touch_driver_generic_resistive_setup, _gx_touch_driver_generic_resistive_update and _gx_touch_driver_generic_resistive_calibrate, maybe guarded with some form of GX_TOUCH_SUPPORT macro.

There is also a possibility that I'm doing this terribly wrong in which case I would appreciate some pointers as to how do you implement touchscreen driver in GUIX. And some hints as to what are the An,Bn,Cn,Dn,En,Fn member of TOUCH_CALIBRATION_MATRIX supposed to represent.

framelist of sprite is wrong when using GUIX studio 6.1.0.0

Hi

It might be a bug. When I create a sprite and define the frame list in GUX studio, the pixelmap ids shown in studio doesn't match those in the auto generated code. I hope you notice it and fix it in the next version.

BTW, about when the next version of GUIX studio is going to be released?

Best Regards
Wesley Fan

Custom resource file for Fonts [Question]

Our resource file is currently at 138MB (167MB with the latest version of GUIX studio) and we've seen an out of memory issue in our customers CI when compiling. So I was looking into splitting the file up to make it faster to compile and avoid issues in the CI.

I've found the following text in the current documentation (similar to the documentation of the GUIX version we're actually using):

For Pixelmap and Font resources, you can specify a custom output filename for each pixelmap and font in theassociated resource editing dialogs. This feature allows you to put very large resources in distinct files, ratherthan putting all resources in one common output file. If you do not specify an overridden filename for a font orpixelmap resource, those resources are written into the common resource file.

I did indeed found a way to pull out the pixelmaps, however I wasn't able to find a way how to move the fonts to a custom file and the font specific documentation also doesn't mention this. Is this a removed feature? Or in the backlog? We'd really like to avoid writing a script to do the split up manually...Or am I just missing where/how this is done?

Reverse byte order option for GUIX Studio

Hi,
I'm using SPI interface LCD with 16bit RGB565 pixel format. When 16bit data sent to LCD controller, the most efficient way is send block of pixel data byte by byte using DMA. So the it would be better to have option to reverse the byte order of 16bit pixel data.

GUIX Studio has a checkbox "reverse byte order", however, it turns out to change RGB565 to BGR565.
For source code, there are macros to assemble and dissemble color in gx_display.h.
https://github.com/azure-rtos/guix/blob/89b07838c72c60a5d79e50f87ac2714284e634e3/common/inc/gx_display.h#L361-L371

It should be easy to change byte order, but I found the macro is not used in some of the c files, like

https://github.com/azure-rtos/guix/blob/89b07838c72c60a5d79e50f87ac2714284e634e3/common/src/gx_display_driver_16bpp_pixelmap_rotate.c#L22-L31
and

https://github.com/azure-rtos/guix/blob/89b07838c72c60a5d79e50f87ac2714284e634e3/common/src/gx_utility_16bpp_pixelmap_resize.c#L22-L31

Is there plan to add "reverse byte order" to GUIX Studio, while not the RGB565 to BRG565 and fix the macro usage in some of the source files?

Thanks.

Circular gauge doesn't display correctly

Hi,
I'm currently working on an interface that already has many windows (more than 30).
As soon as I add a cicular gauge widget (size 100px by 100 px) and change window and go back it colapse to a tiny little 2px by 2px.
Even though the data displays 100px by 100 px. This is purely through the use of the guix interface.

Thank you.
guix_bug_blur

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.