Re: [Gimp-developer] GSoC GimpUnitEntry: Review round 2

2011-08-11 Thread Enrico Schröder
Hi Martin

I implemented your suggestion to follow the GtkSpinButton pattern: The 
UnitAdjustment now is to be created manually by the client and then set via 
gimp_unit_entry_set_adjustment(). I removed the majority of functions in 
GimpUnitEntry which mirrored GimpUnitAdjustment. Only set/get_pixels and 
set/get_bounds is remaining. I also added gimp_unit_entries_get_adjustment() in 
addition to gimp_unit_entries_get_entry() so that clients can access the 
adjustment easily.
Have a look at the new API and tell me what you think (especially what part of 
GimpUnitAdjustment we still should mirror in GimpUnitEntry for convenience). I 
think I like it better now ;) But I made it a separate commit so we could 
rewind painlessly...

Best regards
Enrico

Am 30.07.2011 um 13:30 schrieb Martin Nordholts:

 Hi
 
 Here are my review comments from a rather detailed review round. I've
 looked carefully at the GimpUnitAdjustment and GimpUnitEntry APIs, as
 I believe we can get the API in a state good enough for inclusion in
 the GIMP 2.10 plug-in API (that will also survive into GIMP 3.0).
 GimpUnitEntries should still be kept around, but not as part of a
 backwards compatible public API, only as a private convenience for us.
 Same goes for your new gimp_prop_*()-functions and GimpUnitParser. I
 did't look very closely at the GimpUnitEntries implementation or API
 this time. I didn't look very close at GimpUnitParser either since
 it's a small internal helper which is always nice.
 
 The diff with comments can be found here:
 http://files.chromecode.com/gimp/gimp-soc-2011-gimpunitentry-review-2011-07-17.txt
 
 Your focus now should be on fixing the review comments (and coding
 style and documentation) rather than continuing to port GIMP app to
 use GimpUnitEntry as there is not much time left in the project.
 
 Keep up the good job :)
 
 / Martin
 
 
 -- 
 
 My GIMP Blog:
 http://www.chromecode.com/
 GIMP 2.8 schedule on tasktaste.com

___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] GSoC GimpUnitEntry: Review round 1

2011-07-16 Thread Enrico Schröder
Hi Martin!

Am Freitag, 15. Juli 2011 um 16:17 schrieb Martin Nordholts:

 2011/7/14 Enrico Schröder enni.schroe...@gmail.com 
 (mailto:enni.schroe...@gmail.com):
  Hi
  
  I've adressed most of your comments by now. I have a few comments myself
  though, which I wrote directly in the file. I marked them with '##' so you
  can search for them.
  
  The file with the comments is to be found here:
  http://userpage.fu-berlin.de/enni/soc-2011-gimpunitentry-comments-2011-07-16.txt
 
 Moving discussion out of the text file:
 
  String literals to identify entries is a bit too runtime-ish (still
  better than a numeric literal though), would be better to allow the
  compiler to tell you when you made a typo. When/if you have time,
  perhaps add a
  
   gimp_unit_entry_table_add_default_entry (table, 
  GIMP_UNIT_ENTRY_TABLE_WIDTH)
  
  ?
   The problem with that is that you are limited in how to name your
   entries. What if you want to use GimpUnitEntryTable for, say, the
   radius of a circle. Sure you can define additional enums/defines,
   but that yould result in longer code (and we would be back to using
   int for id's, I bet people would just use 1 and 2 instead of
   defining their own constants). If you make a typo, there is a
   g_warning() in place which tells you that that entry doesn't
   exist. But maybe we need to discuss further ;)
 
 Let's use the best of both worlds, keep gimp_unit_entries_add_entry()
 but provide #defines for the common ones:
 
  #define GIMP_UNIT_ENTRY_WIDTH width
  ...
 
 so that the compiler catches typos. For entry IDs used once, #defines
 are not needed.
 
Ok, I will define the defines ;-) Should the common ones be declared in 
gimpunitentries.h or should each class/file define them themselves when needed?
 
   + gimp_unit_entry_table_add_label (options-size_se, GIMP_UNIT_PIXEL, 
  width, height);
  I don't understand what this line does, what label? Maybe there is a
  better function name?
   That function-call automatically adds a label below height to the
   table, which displays the value of width and height in pixels
   (see the new layer dialog). Maybe
   gimp_unit_entry_table_add_preview_label would be a better name? I
   figured that it might be a good feature to be able to preview the
   value in pixels while inputting another unit.
 
 I can see the label being useful for debugging, but if a user inputs a
 value in inches, he is likely not interested in the value in pixels.
 The few that are can temporarily switch to pixels to see. But, since
 most are not interested, we should not clutter the UI with that info.
 So IMO the function should be removed.
The prototype is 
gimp_unit_entry_table_add_label (GimpUnitEntryTable *table,
GimpUnit unit,
const gchar *id1,
const gchar *id2) 
The function automatically adds a preview label to the table, showing the value 
of the entries with id1 and id2 in the given unit. I noticed that the new image 
dialog (and a couple of others) were using a kind of preview label (provided by 
GimpPropWidgets), so I thought it was nice to have for other use-cases as well. 
Since GimpUnitEntries is a convenience class, I wanted to provide an easy way 
to create such a preview label. Maybe some plugin could use it someday. Since 
it's already there and working, why remove it? It doesn't harm anybody, and we 
don't have to use it in the standard gimp dialogs. If we keep it, we'd need a 
better name though, e.g. _add_preview_label.
 
 Another thing:
 Add a timeout on the red background that is shown on invalid input.
 When typing in normal speed, the intermediate state should not flash
 error, becuase no error has been made. For example, if I type 10
 in in normal pace, the entry will flash in red while in the 10 i
 state, which is annoying and distracting.
Makes sense, I will implement that. GimpEevl even provides the position at 
which an error occurred, don't know how accurate it is though. I will look into 
maybe providing a little better error indication than just painting everything 
read.
 
 I'm going to make another full review of your code now that you've
 addressed many of the comments, and I will think extra on the fate of
 GimpUnitEntries, as we discussed on IRC yesterday.
I must say separating the entry-management from creating the UI-container 
sounds a bit cleaner than it is now. But you had your concerns with that, right?
 Nice job so far!
Thanks :-) 

Best regards,
Enrico




___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] GSoC GimpUnitEntry: Review round 1

2011-07-16 Thread Enrico Schröder
And now, ladies and gentleman, I present the same mail in hopefully 
human-readable
formatting:

Hi Martin!

Am Freitag, 15. Juli 2011 um 16:17 schrieb Martin Nordholts:

 2011/7/14 Enrico Schröder enni.schroe...@gmail.com 
 (mailto:enni.schroe...@gmail.com):
  Hi
  
  I've adressed most of your comments by now. I have a few comments myself
  though, which I wrote directly in the file. I marked them with '##' so you
  can search for them.
  
  The file with the comments is to be found here:
  http://userpage.fu-berlin.de/enni/soc-2011-gimpunitentry-comments-2011-07-16.txt
 
 Moving discussion out of the text file:
 
  String literals to identify entries is a bit too runtime-ish (still
  better than a numeric literal though), would be better to allow the
  compiler to tell you when you made a typo. When/if you have time,
  perhaps add a
  
   gimp_unit_entry_table_add_default_entry (table, 
  GIMP_UNIT_ENTRY_TABLE_WIDTH)
  
  ?
   The problem with that is that you are limited in how to name your
   entries. What if you want to use GimpUnitEntryTable for, say, the
   radius of a circle. Sure you can define additional enums/defines,
   but that yould result in longer code (and we would be back to using
   int for id's, I bet people would just use 1 and 2 instead of
   defining their own constants). If you make a typo, there is a
   g_warning() in place which tells you that that entry doesn't
   exist. But maybe we need to discuss further ;)
 
 Let's use the best of both worlds, keep gimp_unit_entries_add_entry()
 but provide #defines for the common ones:
 
  #define GIMP_UNIT_ENTRY_WIDTH width
  ...
 
 so that the compiler catches typos. For entry IDs used once, #defines
 are not needed.
Ok, I will define the defines ;-) Should the common ones be declared in
gimpunitentries.h or should each class/file define them themselves when needed? 

   + gimp_unit_entry_table_add_label (options-size_se, GIMP_UNIT_PIXEL, 
  width, height);
  I don't understand what this line does, what label? Maybe there is a
  better function name?
   That function-call automatically adds a label below height to the
   table, which displays the value of width and height in pixels
   (see the new layer dialog). Maybe
   gimp_unit_entry_table_add_preview_label would be a better name? I
   figured that it might be a good feature to be able to preview the
   value in pixels while inputting another unit.
 
 I can see the label being useful for debugging, but if a user inputs a
 value in inches, he is likely not interested in the value in pixels.
 The few that are can temporarily switch to pixels to see. But, since
 most are not interested, we should not clutter the UI with that info.
 So IMO the function should be removed.
The prototype is 
gimp_unit_entry_table_add_label (GimpUnitEntryTable *table,
 GimpUnit unit,
 const gchar *id1,
 const gchar *id2) 
The function automatically adds a preview label to the table, showing the value 
of the
entries with id1 and id2 in the given unit. I noticed that the new image dialog 
(and a
couple of others) were using a kind of preview label (provided by 
GimpPropWidgets),
so I thought it was nice to have for other use-cases as well. Since 
GimpUnitEntries is
a convenience class, I wanted to provide an easy way to create such a preview 
label.
Maybe some plugin could use it someday. Since it's already there and working, 
why
remove it? It doesn't harm anybody, and we don't have to use it in the standard 
gimp
dialogs. If we keep it, we'd need a better name though, e.g. 
_add_preview_label. 
 
 Another thing:
 Add a timeout on the red background that is shown on invalid input.
 When typing in normal speed, the intermediate state should not flash
 error, becuase no error has been made. For example, if I type 10
 in in normal pace, the entry will flash in red while in the 10 i
 state, which is annoying and distracting.
Makes sense, I will implement that. GimpEevl even provides the position at 
which an
error occurred, don't know how accurate it is though. I will look into maybe 
providing a
little better error indication than just painting everything read. 
 
 I'm going to make another full review of your code now that you've
 addressed many of the comments, and I will think extra on the fate of
 GimpUnitEntries, as we discussed on IRC yesterday.
I must say separating the entry-management from creating the UI-container 
sounds a
bit cleaner than it is now. But you had your concerns with that, right? 
 
 Nice job so far!
Thanks :-)

Best regards,
Enrico


___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] GSoC GimpUnitEntry: Review round 1

2011-07-14 Thread Enrico Schröder
Hi,

GimpUnitEntryTable is not a GtkWidget, hence the change. I know, the 
name is not very good, but we're working on it ;)
GimpUnitEntryTable derives from GObject and just holds, among other 
things, a GtkTable with the entries. So should I change these variables 
to GObject?

Regards,
Enrico


Michael Natterer schrieb:
 I have an additional comment:

 All these changes:

 -  GtkWidget*size_se;
 +  GimpUnitEntryTable*size_se;

 The variable must stay a GtkWidget, it a convention for all widgets,
 since the widget_new() functions also by convention return a GtkWidget.

 --Mitch


___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] GSoC GimpUnitEntry: Review round 1

2011-07-14 Thread Enrico Schröder
Hi

I've adressed most of your comments by now. I have a few comments myself 
though, which I wrote directly in the file. I marked them with '##' so 
you can search for them.

The file with the comments is to be found here:
http://userpage.fu-berlin.de/enni/soc-2011-gimpunitentry-comments-2011-07-16.txt

Regards,
Enrico
 On Thu, 2011-07-14 at 14:26 +0200, Martin Nordholts wrote:
 Hi Enrico,

 I've made a first review-round of some of your new code. It's not a
 complete review, but it's a start. I hope the to-the-point comments
 are OK, I don't mean to be rude.

 Note that I'm CCing gimp-developer to keep our correspondence public.

 I've done the review by diffing origin/master with
 origin/soc-2011-gimpunitentry (after locally merging master to your
 branch) and put the result in a text file, then adding comments
 inline. The patch has been indented 8 spaces to make the comments
 stand out more. The diff with comments is found here:
 http://files.chromecode.com/gimp/soc-2011-gimpunitentry-comments-2011-07-04.txt

 If you have comments on my comments, just continue this email thread.

___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


[Gimp-developer] [GSOC] GimpUnitEntry - integration into grid editor

2011-07-01 Thread Enrico Schröder
Hi all,

during the integration of the new UnitEntry widget into Gimp I came 
across the grid editor. At the moment it uses two rows, one for entering 
the value in pixels, one for entering it in another unit (cm, inch etc). 
Both display the same value.
Is there a reason for not using just one row and letting the user select 
if he/she wants to enter pixels or other units? I don't see one and 
would just implement the dialog that way, if you don't say hold on, we 
need it the way it is... ;-)

Regards,
Enrico
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] [GSoC] GimpSizeEntry widget

2011-05-14 Thread Enrico Schröder


  
  
Hi Martin!


  

  
  

  

Martin Nordholts
  11. Mai 2011 08:01
  

  
  

  * The parsing should also be perfomed by a non-UI layer and
  not in
  GimpUnitEntry so the parsing code can be used in e.g. a script
  interpreter with no UI dependencies.

  

Parsing is done via GimpEevl which is called from the UnitEntry. I
think it makes sense because the entry is responsible for input and
output, the UnitAdjustment holds the value. GimpEevl does not
require any UI. Or did you mean our get_unit method? Maybe it would
make sense to modify GimpEevl to also determine the unit?

  

  * GimpUnitEntryTable shouldn't derive from GtkTable, because
  there is
  no is-a relationship. To convince yourself of that: Can you
  always
  replace a GtkTable with a GimpUnitEntryTable? Nope, so you
  should use
  composition instead of inheritance.

  

Yeah maybe GimpUnitEntryTable could just be a set of (static)
functions that set up certain commonly used combinations of
UnitEntries, Labels etc. But i guess there is time to discuss that
in detail later, first I'd want to work on the UnitEntry itself ;)

  

  * I've recomended a test-case based development approach
  before, and
  now that most of the code will have no UI-dependencies I
  recomend it
  even more, as non-UI classes generally are very easy to
  unit-test. An
  example of a commit that introduces a non-UI class along with
  appropriate propotions of documentation and unit tests is this
  commit:
http://git.gnome.org/browse/gimp/commit/?id=9fefa22efe70e484fc7c92708ed8efe023e4d219
  By writing unit tests along with your code, productivity goes
  up a lot
  when you (or anyone in the lifetime of the project) refactor
  code,
  because verifying the class still works takes seconds.

  

Will look into that.

  

  * Regarding the use case of entering "1 cm" and getting the
  result in
  px, we could use an 'in' keyword like Google. Analogous to
  "100 SEK in
  USD", we would have "1 cm in px". That is a future extension
  though,
  don't spend time on that yet.

  

Ok, should not be hard to implement this later.

  

  * Have you thought about how the image resolution comes into
  the picture?

  

Would it be ok to have our UnitAdjustment hold the resolution along
with the actual value? It does belong together. However, the problem
then would be if we want our entry to be used to input a resolution.
We could make that work by using just the resolution field of our
adjustment, but that would not be a very elegant solution. So
another class "GimpResolutionAdjustment"?

  

  * Regarding your get_unit() method, an interesting question is
  what
  unit an _expression_ like "10px + 1cm" has.

  

I'd say use the first unit, px in that case. A user would enter an
_expression_ like that if 
a) the 10 px are already in the entry and he just adds the "+1 cm",
so we can assume he wants the unit to stay px, or
b) he enters that term into an empty entry, in which case he could
have entered "1cm + 10px" if he wanted to have cm

  

  * Have you thought about how to connect GimpUnitEntry to the
  existing
  GIMP code like the various props helper functions? (See how
  GimpSizeEntry currently is used)

  

Have to look into that as well.

  

  * I don't like how constraints currently are applied, in
  particular
  that you require two instance of a constraint when there is
  only one
  equation that shall hold. I don't think it is a good idea to
  make
  GimpUnitAdjustment (or GimpUnitEntry for that matter) be aware
  of
  constraints, because they can potentially be rather complex.
  It is
  probably a better idea to take care of constraints one one
  architectural level above GimpUnitAdjustment (they don't know
  about
  constraints, constraints are just being applied to them).
  
  * Regarding the contraint case, for a good design, consider
  how you
  would support constraints between three numbers (e.g. a = b +
  c).
  
  * Again, I would advice you to focus on the basics. Once the
  basic
  functionality is in place, meaning it is 

Re: [Gimp-developer] [GSoC] GimpSizeEntry widget

2011-05-09 Thread Enrico Schröder
Hi everybody,

I've come up with a updated (and more detailed) version of class and 
sequence diagrams for the new widget.

http://enni.userpage.fu-berlin.de/GimpUnitEntry.pdf

I tried to incorporate some of the comments. Note that all names are 
subject to change ;-)
Our now called GimpUnitEntry will be derived from GtkSpinScale and use a 
subclass of GtkAdjustment to store its value including the unit 
(GimpUnitAdjustment). All synchronisation and live updating of 
associated UnitEntries will happen directly between their 
GimpUnitAdjustments, thus completely separating everything value-related 
from the gui and input. The GimpUnitEntry itself will be just 
responsible for display and parsing of entered terms. See use cases and 
class diagram for details.

Regards,
Enrico
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


[Gimp-developer] native osx version

2011-05-03 Thread Enrico Schröder
Creating a new thread as this has nothing to do with my Summer of Code 
project...

 It would be nice, if you can document the steps to compile Gimp for
 MacOS in the Wiki:
 http://wiki.gimp.org/index.php/Users:Beginner_Developer%27s_FAQ
I can try, but it was such a mess... I'm not sure I can remember all the 
steps I did, let alone if I'm able to document them ;) A lot of 
dependencies needed to be built and installed separately from the 
gtk-osx versions (and I'm not only talking about the usual suspects babl 
and gegl), then paths and makefiles had to be hacked for everything to 
point to the right place...

 That would be cool. Perhaps you can work together with Simone from
 Gimp for OS X.
On his website he is writing something about a bug in gnome regarding 
tablets which prevents him from releasing 2.7.2 and probably 2.8. I'm 
afraid I can't do much about it because I don't have a tablet and the 
time to fix bugs right now. Maybe after Summer of Code. I was just 
thinking about releasing binaries with the current limitations 
(apparently tablets not usable, no twain, no dbus) for those people who 
want to use it anyways.

 Im wondering if that menu patch could be formated into a build
 switched thing that could be integrated. Being consistent with mac
 paradigm sounds pretty important to me personally...
It's not my patch (I just modified it a little bit), but I think every 
modification is guarded by GDK_WINDOWING_QUARTZ and __x86_64__ so there 
should be no problem. Can't test 32-bit though, but I'm not sure which 
osx versions this affects. Also it uses some deprecated stuff in 
gtkosxapplication.h so it needs some modifications there, will look into 
that.
The other thing is that we need to link against an additional library, 
but I don't have any experience with modifying autotools build systems. 
What is to be modified to do that properly?
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


Re: [Gimp-developer] [GSoC] GimpSizeEntry widget

2011-05-03 Thread Enrico Schröder

Hi Martin!

Martin Nordholts wrote:


* The sequence diagrams should be on the class interface i.e. method
level.
I will work on some more detailed diagrams, these were just less 
detailed overviews to illustrate what kind of classes I plan on using 
and what they do.

For example, in the simply entering two values sequence
diagram, what classes and method calls will be involved in order to
let GimpSizeEntry b know about GimpSizeEntry a? (I don't understand
why in that use case they need to know about each others value at all
though, they are independent, aren't they?)
They are independent as long as we don't want to preserve aspect ratio. 
Ok I guess I mixed two different use cases there ;). However, I plan on 
using only signals for two entries to communicate with each other. I 
thought the emit showed that. And the signals are getting emitted no 
matter the other entry does not do anything with it. The first entry 
can't know who does something in reaction to its signal, it just sends 
it whenever the user modifies the value.
What I want to avoid by that is the entries having some sort of pointer 
to each other, because it's more flexible for future enhancements (I'm 
thinking of the one-entry-for-width-and-height, as written in my 
application).

  * You should put some thought into what exactly happens during
enters value a, enter value in a new unit etc. You'll get a
GtkEditable::insert-text signal, but then what? Some kind of parsing
needs to take place. Take a look at GimpEevl which is a unit parser we
already have, resuing that would be ideal.

Will do, as I said the diagrams are just a rough overview.

  * In the Changing aspect ratio sequence diagram, a good design
would have an abstraction for the aspect ratio constraint, so that it
would be equally easy to have a constraint between two entries that
said entry_a = entry_b + 100 as it is to have entry_a = entry_b *
1.33.
Ok I haven't thought about the entry_a = entry_b + 100 case. If that 
should be considered then we indeed need a form of abstraction...




But, don't put too much time into aspect ratio preservation. In fact,
I would prefer if you put as little effort as possible into this right
now (except making sure not to make it impossible to extend the design
with it later).
I try to come up with a design that incorporates that. If we have that 
then it shouldn't be much work to do the actual implementation. I still 
think it's possible during that summer ;)

Good, being able to track progress is essential if we want this to be
a successful GSoC project. I do think however that you should increase
the resolution of the tasks. It will be hard to follow up progress on
an 8 week big task. Let's settle on an initial design before creating
more detailed tasks though.
I didn't make them finer-grained because I can't yet estimate how long 
each step will take. Will update as soon as the design is more complete.

  Also, since I'm using a Mac and tried to not having to use a virtual
  machine, I built git-gimp natively on osx (without X11) and with a patch
  that moves the menubar from the main window to the top of the screen
  (like other mac apps). It really was a horrible experience (took me a
  whole day), so I thought it would be nice to have a precompiled
  app-bundle. As far as I know, there are no official mac binaries, right?
  The only ones I found where using X11, which isn't very good. I could
  try to provide osx binaries of the current 2.7.2 and then 2.8 including
  patches for the menu bar and a nice theme.


Not quite sure I follow, how would precompiled binaries help? You'll
need to compile the code yourself anyway,won't you? Btw, as soon as we
have a feature branch, I am going to set up our continuous integration
server Jenkins (http://gimptest.flamingtext.com:8080/) to build
nightly tarballs of your work. That way it will be rather easy for
anyone to test your code.
This has nothing to do with my project, I already created a new thread 
for that. I just thought I maybe could provide OSX binaries as a 
byproduct of the day I spent compiling Gimp on Mac ;)


Regards,
Enrico

___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


[Gimp-developer] [GSoC] GimpSizeEntry widget

2011-05-02 Thread Enrico Schröder
Hi all,

i've come up with the first concept for the rewrite, including a class 
diagram and sequence diagrams for a few use cases:
http://enni.userpage.fu-berlin.de/GimpSizeEntry.pdf
Note that it mainly shows how the different components work together, 
not how each component does its work internally. If I forgot something 
(and I probably have ;-) ) please tell me.
Martin: I planned on integration the keep-aspect-ratio functionality 
right away, because I don't think it's to much additional work.

Additionally I set up a task schedule on 
http://tasktaste.com/projects/enni/gimpsizeentry and applied for a gnome 
git account, but it probably takes some time for it to be activated.

Also, since I'm using a Mac and tried to not having to use a virtual 
machine, I built git-gimp natively on osx (without X11) and with a patch 
that moves the menubar from the main window to the top of the screen 
(like other mac apps). It really was a horrible experience (took me a 
whole day), so I thought it would be nice to have a precompiled 
app-bundle. As far as I know, there are no official mac binaries, right? 
The only ones I found where using X11, which isn't very good. I could 
try to provide osx binaries of the current 2.7.2 and then 2.8 including 
patches for the menu bar and a nice theme.

Regards,
Enrico
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


[Gimp-developer] GSoC application overview

2011-04-08 Thread Enrico Schröder
Hello Gimp developers,

I finished my applications for summer of code.

1) Replace GimpSizeEntry
widgethttp://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/enrico_schroeder/1
2) Dynamically resizeable
layershttp://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/enrico_schroeder/2001

Originally, I'd thought my preference would be the GimpSizeEntry project,
but after a bit of evaluation I also find the resizable layers very
interesting. Especially to work on the internals of Gimp and get a deeper
understanding of that. And I could imagine that the usability of Gimp would
benefit a bit more from that. Also I saw that it is on the official roadmap.


Anyways, I'd be very happy to do one of the projects and am confident to be
able to finish either of them.

Regards,
Enrico
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


[Gimp-developer] GSoC 2011 - Replace GimpSizeEntry widget

2011-04-04 Thread Enrico Schröder
Hello Gimp developers,

I'm currently applying for the GimpSizeEntry project for Summer of Code.
To keep my application short and to allow further discussion and feedback,
I decided to post the detailed description of my proposal on the mailing
list instead of in the application itself. My application will contain a
link to this mail.

Regards,
Enrico

-
Detailed description:

I will describe briefly the issues of the current implementation of the
GimpSizeEntry widget and how I suggest to address them:
 
Currently, the unit is selected through an external combo box. The
new GimpSizeEntry will not have that external combo box. Instead, the unit
is
entered directly into the text entry. The input will then be evaluated
making
use of the existing parser (gimpeevl.c) which will allow input of simple
mathematical terms and sizes in different units (for example 1024px + 2
in). The result including the unit will then be displayed in the text
entry. The unit will be defined through either the entered unit or context
sensitive: When there is no unit entered, the previous unit is assumed, or
the
unit of a related SizeEntry.
 
The second issue is size and flexibility. Being based on GtkTable,
the current solution consumes too much space and is not flexible enough.
The
new GimpSizeEntry will be based on GtkEntry. It will have the necessary
interfaces to work together with other SizeEntries or elements such as
GimpChainButtons or preview labels. This allows adjusting the SizeEntry
for every
use case: be it the use in the new image dialog or in the settings of a
tool,
with or without a button to fix aspect ratio etc. while still being able
to make it as compact as possible wherever screen space needs to be
conserved.
 
I even imagine the use of just a single GimpSizeEntry for input of
height and width together (in the form of ³1024x768 px²). That would
especially
be useful in the tool¹s settings, where space needs to be conserved. For
example
the Scale tool: We now have a pop-up with basically only a GimpSizeEntry
and
Ok/Cancel buttons. Having just a single entry field would allow to move
that
into the settings and not having to use the pop-up. Designing the new
GimpSizeEntry with that flexibility in mind would make it easy to extend it
that way. There might not be enough time for all of that in the scope of
Summer of Code, but I¹d be happy to continue developing afterwards to
ensure Gimp gets the most out of the new GimpSizeEntry widget.


___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


[Gimp-developer] GSoC 2011 - Replace GimpSizeEntry widget

2011-04-04 Thread Enrico Schröder
Hello Gimp developers,

I'm currently applying for the GimpSizeEntry widget for SummerOfCode. To
keep my application short and allow further discussion and feedback, I've
decided to post the detailed description of my proposal on the mailing list
instead of in the application itself. My application will contain a link to
this mail.

Regards,
Enrico

PS. this time hopefully in human-readable formatting, sorry for the first
mail.

---

Detailed description:


I will describe briefly the issues of the current implementation of the
GimpSizeEntry widget and how I suggest to address them:



Currently, the unit is selected through an external combo box. The new
GimpSizeEntry will not have that external combo box. Instead, the unit is
entered directly into the text entry. The input will then be evaluated
making use of the existing parser (gimpeevl.c) which will allow input of
simple mathematical terms and sizes in different units (for example 1024px
+ 2 in). The result including the unit will then be displayed in the text
entry. The unit will be defined through either the entered unit or context
sensitive: When there is no unit entered, the previous unit is assumed, or
the unit of a related SizeEntry.



The second issue is size and flexibility. Being based on GtkTable, the
current solution consumes too much space and is not flexible enough. The new
GimpSizeEntry will be based on GtkEntry. It will have the necessary
interfaces to work together with other SizeEntries or elements such as
GimpChainButtons or preview labels. This allows adjusting the SizeEntry for
every use case: be it the use in the new image dialog or in the settings of
a tool, with or without a button to fix aspect ratio etc. while still having
the possibility to make it as compact as possible wherever screen space
needs to be conserved.



I even imagine the use of just a single GimpSizeEntry for input of height
and width together (in the form of “1024x768 px”). That would especially be
useful in the tool’s settings, where space needs to be conserved. For
example the Scale tool: We now have a pop-up with basically only a
GimpSizeEntry and Ok/Cancel buttons. Having just a single entry field would
allow to move that into the settings and not having to use the pop-up.
Designing the new GimpSizeEntry with that flexibility in mind would make it
easy to extend it that way. There might be not enough time in the scope of
Summer of Code, but I’d be happy to continue developing afterwards to ensure
Gimp gets the most out of the new GimpSizeEntry widget.
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer


[Gimp-developer] GSoC 2011 - GimpSizeEntry widget

2011-03-27 Thread Enrico Schröder
Hello,

my name is Enrico Schröder. I'm studying computer science at Freie
Universität Berlin, but am currently studying abroad in Paris at Université
Paris Diderot. I would like to apply for the Replace the GimpSizeEntry
widget project for Summer of Code 2011. I have strong experience in C and
am also familiar with UI programming using different APIs (QT, Cocoa, GTK+,
Swing).

For my understanding a complete replacement for the GimpSizeEntry widget is
required. It is supposed to be more user-friendly (for example the unit
should appear in the entry field rather than in an external control and
there should be support for input of different units and simple mathematical
terms) while at the same time beeing more compact.

My general idea would be to base it on the regular GtkEntry instead of
GtkTable and letting it handle the input, parsing and calculation of sizes
in different units. If it would be helpful, the SizeEntry will be able to
accept height and width in a single entry (for example 1024x768px). That
way it would be possible to use only one instead of two input fields (I'm
thinking of usage in the toolbar where screen space needs to be conserved).

However, in the majority of cases it makes sense to treat width and height
with seperate input fields, so the new SizeEntry will have the neccessary
interface for working together and interacting with other SizeEntries. It
will be possible to combine different entries in a GtkTable and add for
example a GimpChainButton or preview labels.

I'm thinking of designing it in a flexible way so that it can be used in a
variety of forms wherever it makes sense to do so, while still being
consistent to not confuse users.

I hope you like my ideas and am seeing foreward to further discuss them and
get feedback.

Enrico
___
Gimp-developer mailing list
Gimp-developer@lists.XCF.Berkeley.EDU
https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer