// 20 may 2015 #include "uipriv_windows.h" // references: // - http://stackoverflow.com/questions/2892703/how-do-i-draw-separators // - https://msdn.microsoft.com/en-us/library/windows/desktop/dn742405%28v=vs.85%29.aspx struct separator { uiSeparator s; HWND hwnd; }; uiDefineControlType(uiSeparator, uiTypeSeparator, struct separator) static uintptr_t separatorHandle(uiControl *c) { struct separator *s = (struct separator *) c; return (uintptr_t) (s->hwnd); } // via https://msdn.microsoft.com/en-us/library/windows/desktop/bb226818%28v=vs.85%29.aspx #define separatorHeight 1 static void separatorPreferredSize(uiControl *c, uiSizing *d, intmax_t *width, intmax_t *height) { *width = 1; // TODO *height = uiWindowsDlgUnitsToY(separatorHeight, d->Sys->BaseY); } uiSeparator *uiNewHorizontalSeparator(void) { struct separator *s; s = (struct separator *) uiWindowsNewSingleHWNDControl(uiTypeSeparator()); s->hwnd = uiWindowsUtilCreateControlHWND(0, L"static", L"", SS_ETCHEDHORZ, hInstance, NULL, TRUE); uiControl(s)->Handle = separatorHandle; uiControl(s)->PreferredSize = separatorPreferredSize; return uiSeparator(s); }