Coder Social home page Coder Social logo

devlephant / sizectrl Goto Github PK

View Code? Open in Web Editor NEW
20.0 20.0 4.0 12.26 MB

TSizeCtrl v8.2

Pascal 99.45% PHP 0.55%
custom-components custom-controls delphi freepascal ide lazarus lcl pascal property-editor rtti scrollers sizers sizing sizing-grips vcl windows

sizectrl's People

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

sizectrl's Issues

Support for FMX, checking multiplatform

Add support for FMX (it's very,very,very painful!)
Check compatibility with other platforms

Any test results from specific platforms (Mac OS, kali linu... khm ubuntu 16) will help

Make folders

  • folder "src" for component pas files
  • folder "demos\nnnnnnnnn" (name it) with all program files

Add Orig Frame

Add Frame, which specifies on showing original object positions.
Add properties:
DisplaySourceRect (active/unactive)
SourceRectMethod => TSourceRectMethod

  • tsrStatic - when it's active, the rect is used to display the first position of the object
  • tsrDynamic - it's - to display previous position
  • tsrNone/tsrDisabled - when it's - the SourceRect is not displayed

Drawing instead of layering

Draw FocusRect instead of layer it on the components, with inheritance from TCustomForm...
AlphaBlending can be added with Byte Adding ( pDest[x, y] := pDest[x,y]^ (pLayer[x,y] * (1-AlphaBlend/255)) ) method

Focus-Frame/Rect to stay top

Regenerate Frame topmost settings(Add FrameOnTop property, e.g make the TMovePanel parent the same as TSizeBtn parent, if needed) [Delphi]

Do something with Transparency in Laz

Do something (or maybe ask about what i can use to do that) to prevent project from lagging, when transparency is needed.
[ TSizeBtn => TForm => TCustomForm now..., and, it must be like TSIzeBtn=>TCustomControl ]

Add preventEscape function

PreventEscape function is a set of properties, which target is to make control stay in the visible range

  1. Property to activate/disable this function
  2. Property to specify bounds
  3. Property to specify escaping % (default: 100 or 0, depends on what does it means)

Custom tag(s) support

Add custom tag support, to limit or to allow some different actions for the controls with the specified tag

Support for color animations

Add color animations support, from my own class/library or from the one's the most famous!
[I have lib for Cs|PHP, so, i can port it to Delphi, without any specific problems - math things only:)]

GTk-2 support

WIth gtk it doesn't handles the WM_KEY messages...
[Reason: fActiveControl:=nil cannot be done on GTK]
=> Key moving is not supported

Add Editing History

Add editing history, with methods:
<=TSizeCtrlHistory=>
Methods:
BeginUndoBlock
EndUndoBlock
Undo
Restore (Undoes all of the actions)
UndoIndex(index:integer;method: TSizeCtrlIndexShift) (Undoes specified action, slices or merges all of others)
Redo
Clear
Property:
Indexes: TArray

TSizeCtrlIndexShift = (szcsSlice, szcsMerge) //if the method is Slice, the discarded action will be just like a step back to the previous state, in case of Merging - it will be offsetted by calculation of all next steps
including the discarding step's Initial Positions.
TSizeCtrlIndexType = (eMoveLeft, eMoveTop, eMoveRight, eMoveDown,
eMoveLeftTop, eMoveLeftDown, eMoveRightTop, eMoveRightDown,
eResizeLeft, eResizeTop, eResizeRight, eResizeBottom,
eResizeLeftTop, eResizeLeftBottom, eResizeRightTop, eResizeRightBottom);

TSizeCtrlHistoryIndex = record
IsMove: boolean;
EditType: TSizeCtrlIndexType read GetType;//(compares original and destination(result,final) properties to give the correct result)
DX, DY, DW, DH: integer; //
X, Y, W, H: integer;// can be realized as virtual, by getting previous index from parent TSizeCtrlHistory<?+->

Component mirroring

Add component mirroring to draw component like in portal manner[s]
Also, as an option(property)

  • In addition, it must change component real position according to limited space coordinates, in case if the component is violating parent's area, in other case, it's just have to draw the object in mirrored style

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.