Jump to content
Search In
  • More options...
Find results that contain...
Find results in...


  • Content Count

  • Joined

  • Last visited

Community Reputation

137 Excellent

About klepto2

  • Birthday 08/26/1979

Profile Information

  • Gender
  • Location
    Hildesheim, Germany
  • Interests
    soccer, poker
    3d and 2d programming
    .net (wpf, silverlight and common forms)

Recent Profile Visitors

23,952 profile views
  1. You can also look into this: https://github.com/ButchDean/game-ai-by-example this repo contains the source of the book Game AI by Example by Mat Buckland and gives a lot of ideas and starting points for effective AI programming.
  2. Hi, I finally managed to build a first release candidate for a SyntaxEditor-Widget. The Widget is using the famous Scintilla TextEditor-Component under the hood and wraps the control into a UAK-Widget. At this point i only provide binaries (includes and libraries) but i am currently preparing to release the source as well. The source itself is semi-autogenerated with a manual created body and a tool which generates the main part of the Scintilla-Component based of so called iFace files maintained by the Scintilla author (these files contains the definitions of each enum or functio
  3. Ah, ok. Missed that you can parent a window to another window. Thanks.
  4. Don't know if this is needed for other os than windows but if you create a child window it might be useful to not show it in the taskbar like for tooltips or like UAK does it with the combobox. A hack to achieve this is doing the following: _window = CreateWindow("", 0, 0, 0, 0, displays[0], WindowStyles::WINDOW_HIDDEN | WindowStyles::WINDOW_CHILD); SetWindowLongA(_window->GetHandle(), GWL_EXSTYLE, (GetWindowLong(_window->GetHandle(), GWL_EXSTYLE) | WS_EX_TOOLWINDOW) & ~WS_EX_APPWINDOW);
  5. static const and scoped enums are 2 different things. the current enums look like a mix of enums names for constants. Normally only constants are uppercase. The thing is you don't need the uppercase-separated-by-underscore approach. You can keep the uppercase names of course: CreateTextfield(0,0,250,20,ui->root, TextfieldStyle::DEFAULT); // you can now clearly say what enum is used. with your approach you can't have something like this: enum VerticalAlignment { TOP,BOTTOM,CENTER }; enum HorizontalAlignment { LEFT,RIGHT,CENTER }; which leads to the need of the underscor
  6. Currently the enums in UAK are defined as unscoped enums like this: enum TextFieldStyle { TEXTFIELD_READONLY = 1, //TEXTFIELD_PASSWORD = 2, TEXTFIELD_TEXTCHANGEACTIONEVENT = 4, TEXTFIELD_LOSEFOCUSACTIONEVENT = 8, TEXTFIELD_ENTERKEYACTIONEVENT = 16, TEXTFIELD_DEFAULT = TEXTFIELD_LOSEFOCUSACTIONEVENT + TEXTFIELD_ENTERKEYACTIONEVENT, //TEXTFIELD_NUMBER = 8, //TEXTFIELD_INTEGER = 16, //TEXTFIELD_FILEPATH = 32, TEXTFIELD_PASSWORD = 64 }; I suggest to follow the common c++ suggestions to use scoped enums instead: enum class TextFieldStyle { ReadOnly = 1, Password
  7. Forgot to mention: OS: Windows 10.
  8. In the latest beta the password box displays a wrong replacement character.
  9. class TooltipInfo : public Object { public: shared_ptr<Widget> target; shared_ptr<Widget> tooltipWidget; }; enum class TooltipState { Pending, Show, Showing, Hiding, Hide, }; class TooltipService { static vector<shared_ptr<TooltipInfo>> _tooltipInfos; static bool _initialized; static TooltipState _state; static shared_ptr<Window> _window; static shared_ptr<Interface> _ui; static bool Enter(const Event&, shared_ptr<Object>); static bool Leave(const Event&, shared_ptr<Object>); s
  10. klepto2

    SyntaxEditor in UAK

    This is a WIP - SyntaxEditor Control for Ultra AppKit I am working on. It is based on the Scintilla Editor . This is how it looks like when the Editor is themed like the rest of the Application
  11. Hi! I was on vacation the last 2 weeks so i couldn't reply earlier. Take a look here: I am currently working on a full featured layout system with Container Gadgets which will work like (kind of) the way you can layout things in xaml or in other GUI libraries. I will post more info on that new system in a later blog entry but in general it should work the way you described. There will be Container, Grid, Flow, Stackpanel and other widgets to control the layout as well as additional layouting features (Alignment, Margin, Padding, etc.)
  12. Made some progress with the ScintillaWidget: Scrollbars are native SliderWidgets from UAK Also i have the Notifcationsystem aka Events from Scintilla integrated to UAK.
  13. The ScintillaWidget for UltraAppKit comes close :) now with native UAK-Scrolling:SCINTILLA_ULTRAAPPKIT_Styled.thumb.png.43c25a4c9958d1a91340c15eb01da1f2.png

  14. In this first entry I will introduce some basics about the internal structure of the Widget class and what the purpose of some of its members is. For the real basics on how to write a custom Widget I suggest reading this https://www.ultraengine.com/learn/CPP/CustomWidgets first. Most of the members are self explained, so I will focus in this entry on 4 important methods: virtual bool Initialize(const WString& text, const int x, const int y, const int width, const int height, shared_ptr<Widget> parent, const int style); virtual void UpdateLayout(); virtual void Draw(cons
  15. No problem ; ) i just thought the description needed some addition to make the problem more clear.
  • Create New...