<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#FFFFFF" bgcolor="#000000">
    <font size="+1">Hey Luca,<br>
      <br>
      First of all - I like this plugin - the added functionality is
      really nice and useful.<br>
      <br>
      A few suggestions:<br>
      <br>
      This plugin is not needed by others as far as I understand, so why
      do you need the more complicated public ABI construction ?<br>
      I do not really see the need for the MouseThemer class at all, and
      MousethemeScreen can be constructed like this:<br>
      <br>
      class MousethemeScreen :<br>
          public PluginClassHandler <MousethemeScreen,
      CompScreen>,<br>
          public MousethemeOptions<br>
      <br>
      class MousethemePluginVTable :<br>
          public CompPlugin::VTableForScreen <MousethemeScreen><br>
      <br>
      mousetheme.cpp and mousetheme.h in /src should be able to do
      enough magic, no ?<br>
      <br>
      availableThemesUpdate () and everythingUpdate () could then be
      called on plugin start in the MousethemeScreen::MousethemeScreen
      (CompScreen *screen) : ctor.<br>
      <br>
      The new functions in core could return bools and use better
      logging like this:<br>
      bool<br>
      PrivateScreen::setNormalCursor (Cursor c)<br>
      {<br>
          if (c == None)<br>
          {<br>
          compLogMessage ("core", CompLogLevelWarn,<br>
                  "Preventing setting the normal mousecursor to "\<br>
                  "non-existent!");<br>
      <br>
          if (normalCursor == None)<br>
              compLogMessage ("core", CompLogLevelError,<br>
                      "We currently do not have a normal mousecursor!");<br>
          else<br>
              compLogMessage ("core", CompLogLevelInfo,<br>
                      "Will continue to use the old normal
      mousecursor.");<br>
      <br>
          return false;    // failure<br>
          }<br>
      <br>
          if (normalCursor != None)<br>
          XFreeCursor (dpy, normalCursor);<br>
      <br>
          normalCursor = c;<br>
      <br>
          compLogMessage ("core", CompLogLevelInfo,<br>
                  "Successfully set a new normal mousecursor.");<br>
      <br>
          return true;    // success<br>
      }<br>
      <br>
      The new dependencies also require adding libboost-filesystem-dev
      to the package deps in debian/control for packages to build with
      mousetheme.<br>
      <br>
      Regarding hidden settings: AFAIK action type settings are hidden
      in CCSM, so I am sure it might be possible with some hacking, but
      I agree that the mousetheme problem is a very special case ;)<br>
      <br>
      Greetinx,<br>
      <br>
      MC Return<br>
    </font>
  </body>
</html>