Autor Thema: Test: 02_RSS mit alignments  (Gelesen 23507 mal)

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18007
  • Stoppt den Unicode-Irrsinn!
Antw:Test: 02_RSS mit alignments
« Antwort #30 am: 09 Dezember 2013, 22:00:39 »
Hallo Boris,

ich habe die textbox jetzt getestet und folgende Vorschläge (wie schon weiter oben erwähnt)

1. das text-align wird aus $params{thalign} übernommen (man kann ja auch irgendwann anders als im Blocksatz darstellen wollen!)

2. das linespacing wird aus der textbox-Definition übernommen und nicht aus einem eigenen $params{}. Da dieser Parameter nur innerhalb der textbox vorkommt, sollte er auch direkt dort mit angegeben werden (die $boxwidth ist ja auch kein eigenes Kommando)

Der Aufruf einer textbox würde damit so aussehen:

thalign "justified"
textbox 10 150 380 4 { "bla bla bla" }

Das funktioniert bei mir im Moment alles problemlos.

Ob die genaue Positionierung aller Elemente nach Deiner diesbezüglichen Änderungen funktioniert, habe ich noch nicht vollständig getestet. Aber soweit ich das jetzt getestet habe, sieht es ganz gut aus.

my @valid_halign = qw(left center right justified);

...

sub
RSS_itemTextBox {
#        my ($S,$x,$y,$boxwidth,$text,%params)= @_;
        my ($S,$x,$y,$boxwidth,$sp,$text,%params)= @_;
        return unless(defined($text));
       
        if($params{useTextWrap}) {
              if((0 < $boxwidth) && ($boxwidth < 1)) { $boxwidth*= $S->width; }
              my $wrapbox = GD::Text::Wrap->new($S,
                      color  => RSS_color($S, $params{rgb}),
#                      line_space => $params{linespace},
                      line_space => $sp,
                      text => $text,
                      );
              $wrapbox->set_font($params{font}, $params{pt});
#              $wrapbox->set(align => 'justified', width => $boxwidth);
              $wrapbox->set(align => $params{thalign}, width => $boxwidth);
              my ($left, $top, $right, $bottom) = $wrapbox->draw($x, $y);
              return $bottom;
        } else {
              RSS_itemText($S,$x,$y,$text,%params);
              return $y;
        }
}

...

          } elsif($cmd eq "textbox") {
            ($x,$y,$boxwidth,$sp,$text)= split("[ \t]+", $def, 5);
            ($x,$y)= RSS_xy($S, $x,$y,%params);
            my $txt= AnalyzePerlCommand(undef, $text);
            #Debug "$name: ($x,$y) $txt";
            $y= RSS_itemTextBox($S,$x,$y,$boxwidth,$sp,$txt,%params);
            $params{x} = $x;
            $params{y} = $y;


Viele Grüße
Udo
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 5064
  • Are we just self-replicating DNA?
Antw:Test: 02_RSS mit alignments
« Antwort #31 am: 09 Dezember 2013, 22:57:30 »

          }  elsif($cmd eq "img") {
            ($x,$y,$scale,$imgtype,$srctype,$arg)= split("[ \t]+", $def,6);
++           ($x,$y)= RSS_xy($S, $x,$y,%params);
++           $params{x} = $x;
++           $params{y} = $y;
            my $arg= AnalyzePerlCommand(undef, $arg);
            RSS_itemImg($S,$x,$y,$scale,$imgtype,$srctype,$arg,%params);

Ich hatte das Vorschieben des Cursors bei Bildern absichtlich ausgelassen.

Nachdem ich nun nochmal darüber nachgedacht habe, werde ich es einbauen.

Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 5064
  • Are we just self-replicating DNA?
Antw:Test: 02_RSS mit alignments
« Antwort #32 am: 09 Dezember 2013, 23:00:50 »
Hallo Udo,

ich kümmere mich am Wochenende darum. Jetzt bin ich erstmal weg.

Das linespacing hat default 0 (wie es mir gefällt). Ob es ins textbox-Kommando kommt oder ein extra Kommando, ist m.E. im Moment noch Geschmacksache. Und dann tendiere ich eher dazu, es so zu belassen, wie es implementiert und dokumentiert ist.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18007
  • Stoppt den Unicode-Irrsinn!
Antw:Test: 02_RSS mit alignments
« Antwort #33 am: 10 Dezember 2013, 09:43:40 »
Das linespacing hat default 0 (wie es mir gefällt). Ob es ins textbox-Kommando kommt oder ein extra Kommando, ist m.E. im Moment noch Geschmacksache. Und dann tendiere ich eher dazu, es so zu belassen, wie es implementiert und dokumentiert ist.

Meine Tendenz ist eher umgekehrt. Ich fände es sehr viel logischer, das linespacing in der textbox Definition anzugeben. Wie schon gesagt: Es ist ein Parameter, der ausschließlich in der textbox relevant ist (im Gegensatz zu rgb oder pt, wo es durchaus Sinn macht, den Parameter abzuspeichern, da er von mehreren Elementen benutzt wird) Eine 0 kann man ja immer noch in der textbox Anweisung mitgeben, wenn man die unbedingt haben möchte.

Ich hatte das Vorschieben des Cursors bei Bildern absichtlich ausgelassen.

Nachdem ich nun nochmal darüber nachgedacht habe, werde ich es einbauen.

Es geht nicht um das Vorschieben des Cursors und auch nicht um Nachdenken *g* sondern einfach darum, dass es ohne die aufgezeigte Änderung (zumindest ohne die erste der drei Zeilen) schlichtweg nicht mehr funktioniert!

Wenn Du nämlich ein "halign center" vorgibst und dann ein "img 0.5 300 ..." definierst, wird die halbe Bildbreite von 0.5 abgezogen und dann z.B. bei einem Plot mit (x=-399.5 y=300) anstatt (x=400 y=300)gearbeitet, weil das Auflösen der 0.5 in eine absolute Position komplett fehlte. Das sah bei meinen ersten Tests optisch zwar aus wie rechtsbündig, war es aber nicht, wie das Debuggen letztendlich zeigte.

Ob man die zweite und dritte Zeile braucht, kann man diskutieren. Aber die erste Zeile muss auf jeden Fall rein.
 
« Letzte Änderung: 10 Dezember 2013, 09:46:02 von betateilchen »
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18007
  • Stoppt den Unicode-Irrsinn!
Antw:Test: 02_RSS mit alignments
« Antwort #34 am: 10 Dezember 2013, 10:49:21 »
Das linespacing hat default 0 (wie es mir gefällt). Ob es ins textbox-Kommando kommt oder ein extra Kommando, ist m.E. im Moment noch Geschmacksache.

Nur mal noch so der Hinweis, wenn es um "default" geht: Wenn ich in einen RSS ein img einbinde, das ich NICHT skalieren möchte, muss ich den Skalierungsfaktor 1 trotzdem mit angeben. Genau die gleiche "Geschmacksfrage" - Du scheinst irgendwie einen sehr schwankenden Geschmack zu haben... :)

Ich persönlich bevorzuge lieber Einheitlichkeit, um nicht bei jedem tag in der Layoutdatei überlegen zu müssen, wo ich nun welchen Wert angeben muss. Ein Grund mehr, der für mich dafür spricht, das linespacing in die textbox-Angabe zu packen.
« Letzte Änderung: 10 Dezember 2013, 10:51:29 von betateilchen »
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 5064
  • Are we just self-replicating DNA?
Antw:Test: 02_RSS mit alignments
« Antwort #35 am: 20 Dezember 2013, 17:11:51 »
          }  elsif($cmd eq "img") {
            ($x,$y,$scale,$imgtype,$srctype,$arg)= split("[ \t]+", $def,6);
++           ($x,$y)= RSS_xy($S, $x,$y,%params);
++           $params{x} = $x;
++           $params{y} = $y;
            my $arg= AnalyzePerlCommand(undef, $arg);
            RSS_itemImg($S,$x,$y,$scale,$imgtype,$srctype,$arg,%params);

Eingecheckt.
bn
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 5064
  • Are we just self-replicating DNA?
Antw:Test: 02_RSS mit alignments
« Antwort #36 am: 20 Dezember 2013, 17:45:51 »
1. das text-align wird aus $params{thalign} übernommen (man kann ja auch irgendwann anders als im Blocksatz darstellen wollen!)

Eingecheckt!
bn
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18007
  • Stoppt den Unicode-Irrsinn!
Antw:Test: 02_RSS mit alignments
« Antwort #37 am: 21 Dezember 2013, 10:18:32 »
hm... danke.

*grummel*
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!