Messages - Xitsa [ switch to compact view ]

Pages: prev1 [2]
6
JGPaiva's GridMove and Ahk Tools / Re: GridMove: Grids Here
« on: August 29, 2008, 01:56 PM »
By a way of testing gridstack's abilities  ;)
jgpaiva's variant:
GridStack's source:
Monitor 1
 HStack
   (
     Window
     HStack
       (
         VStack
           (
             Window
             Window
           )
         Window 2
       )
   )
GridMove's grid:
[Groups]

  NumberOfGroups = 4

[1]
  TriggerTop    = [Monitor1Top]
  TriggerRight  = [Monitor1Left] + [Monitor1Width] / 2
  TriggerBottom = [Monitor1Bottom]
  TriggerLeft   = [Monitor1Left]
  GridTop       = [Monitor1Top]
  GridRight     = [Monitor1Left] + [Monitor1Width] / 2
  GridBottom    = [Monitor1Bottom]
  GridLeft      = [Monitor1Left]

[2]
  TriggerTop    = [Monitor1Top]
  TriggerRight  = [Monitor1Left] + [Monitor1Width] / 3 * 2
  TriggerBottom = [Monitor1Top] + [Monitor1Height] / 2
  TriggerLeft   = [Monitor1Left] + [Monitor1Width] / 2
  GridTop       = [Monitor1Top]
  GridRight     = [Monitor1Left] + [Monitor1Width] / 3 * 2
  GridBottom    = [Monitor1Top] + [Monitor1Height] / 2
  GridLeft      = [Monitor1Left] + [Monitor1Width] / 2

[3]
  TriggerTop    = [Monitor1Top] + [Monitor1Height] / 2
  TriggerRight  = [Monitor1Left] + [Monitor1Width] / 3 * 2
  TriggerBottom = [Monitor1Bottom]
  TriggerLeft   = [Monitor1Left] + [Monitor1Width] / 2
  GridTop       = [Monitor1Top] + [Monitor1Height] / 2
  GridRight     = [Monitor1Left] + [Monitor1Width] / 3 * 2
  GridBottom    = [Monitor1Bottom]
  GridLeft      = [Monitor1Left] + [Monitor1Width] / 2

[4]
  TriggerTop    = [Monitor1Top]
  TriggerRight  = [Monitor1Right]
  TriggerBottom = [Monitor1Bottom]
  TriggerLeft   = [Monitor1Left] + [Monitor1Width] / 3 * 2
  GridTop       = [Monitor1Top]
  GridRight     = [Monitor1Right]
  GridBottom    = [Monitor1Bottom]
  GridLeft      = [Monitor1Left] + [Monitor1Width] / 3 * 2

kranor's variant:
GridStack's source:
Monitor 1
 HStack
   (
     Window
     HStack
       (
         Window 2
         VStack
           (
             Window
             Window
           )
       )
   )
GridMove's grid:
[Groups]

  NumberOfGroups = 4

[1]
  TriggerTop    = [Monitor1Top]
  TriggerRight  = [Monitor1Left] + [Monitor1Width] / 2
  TriggerBottom = [Monitor1Bottom]
  TriggerLeft   = [Monitor1Left]
  GridTop       = [Monitor1Top]
  GridRight     = [Monitor1Left] + [Monitor1Width] / 2
  GridBottom    = [Monitor1Bottom]
  GridLeft      = [Monitor1Left]

[2]
  TriggerTop    = [Monitor1Top]
  TriggerRight  = [Monitor1Left] + [Monitor1Width] / 6 * 5
  TriggerBottom = [Monitor1Bottom]
  TriggerLeft   = [Monitor1Left] + [Monitor1Width] / 2
  GridTop       = [Monitor1Top]
  GridRight     = [Monitor1Left] + [Monitor1Width] / 6 * 5
  GridBottom    = [Monitor1Bottom]
  GridLeft      = [Monitor1Left] + [Monitor1Width] / 2

[3]
  TriggerTop    = [Monitor1Top]
  TriggerRight  = [Monitor1Right]
  TriggerBottom = [Monitor1Top] + [Monitor1Height] / 2
  TriggerLeft   = [Monitor1Left] + [Monitor1Width] / 6 * 5
  GridTop       = [Monitor1Top]
  GridRight     = [Monitor1Right]
  GridBottom    = [Monitor1Top] + [Monitor1Height] / 2
  GridLeft      = [Monitor1Left] + [Monitor1Width] / 6 * 5

[4]
  TriggerTop    = [Monitor1Top] + [Monitor1Height] / 2
  TriggerRight  = [Monitor1Right]
  TriggerBottom = [Monitor1Bottom]
  TriggerLeft   = [Monitor1Left] + [Monitor1Width] / 6 * 5
  GridTop       = [Monitor1Top] + [Monitor1Height] / 2
  GridRight     = [Monitor1Right]
  GridBottom    = [Monitor1Bottom]
  GridLeft      = [Monitor1Left] + [Monitor1Width] / 6 * 5


Sorry, but cannot help not to play around :)

7

PS: did you make this with ahk? Maybe you could post the source code too? ;)
I'm glad you like it too :)
Here new version and sources.
I fixed some things in output (missed some rare case).

Program is wriitten in mix of C and C++ and quite straightforward:
Firstly developed in Borland C++ Builder and later ported to Visual C++ (to achieve more small size).
Comments are in russian but everything should be easy to understand.
One thing that can be confusing is using a combo Flex+Bison, but without them I would write parser more longer :)

P.S. please keep an empty line at the end in *.grid files: it seems lexer needs it for some reason.

8
I've wrote small utility for creating simple GridMove layouts.
It's main task to make easy calculating grid's coordinates (I was bored after making two grids :)).
GridStack is a command line application accepting definition of a grid layout and outputing GridMove's template.

You can get it here.

How to use:
GridStack input.stack output.grid
input.stack — definition of grid in series of subdivisions
output.grid — input template for GridMove.

input.stack is a sequence of definitions of monitors

Each monitor has region which can be divided in several regions vertically or horizontally. Each region can be divided vertically or horizontally also. There where division ends is window.

Each region can be divided either horizontally or vertically. Definition of each subregion includes Dimension: relative dimension of a subregion.

For example: if we use definition
HStack ( Window 1 Window 2)
we get two windows of same height with sizes 33% and 66% of upper region width respectively.

To set absolute (not relative) size use size! (warning: between number and exclamation mark shouldn't be any spaces!).

If size not specified assumed value 1.

Example:
For generating 3-part.grid one should provide following input:

Monitor 1
 HStack
   (
     Window 2
     VStack
       (
         Window
         Window
       )
   )
Monitor 2
 HStack
   (
     Window 2
     VStack
       (
         Window
         Window
       )
   )
Monitor 3
 HStack
   (
     Window 2
     VStack
       (
         Window
         Window
       )
   )

One more example:

Monitor 1
 VStack
   (
     HStack 1
       (
         Window
         Window
         Window
         Window
       )
     HStack 3
       (
         Window
         VStack  300! #300 pixels for width
          (
            Window 3
            Window 5
          )
         Window
       )
   )



Please test

Pages: prev1 [2]
Go to full version