about summary refs log tree commit diff stats
path: root/tools/validator/structs.h
Commit message (Expand)AuthorAgeFilesLines
* Add white_ending flag to doorStar Rauchenberger2025-10-241-2/+0
* Annotate "worldport entrances"Star Rauchenberger2025-10-191-0/+3
* [Data] Fixed connection target required door logic bugsStar Rauchenberger2025-09-111-0/+3
* Added door groupsStar Rauchenberger2025-09-071-0/+9
* [Data] Strip unnecessary AP IDsStar Rauchenberger2025-09-041-0/+6
* Added progressive doorsStar Rauchenberger2025-09-011-0/+8
* Changed how door location names are formattedStar Rauchenberger2025-08-301-0/+7
* Added control_centerStar Rauchenberger2025-08-271-0/+2
* Added "endings" object typeStar Rauchenberger2025-08-201-0/+5
* Validate that nodes in game files are usedStar Rauchenberger2025-08-181-0/+1
* Validate that node paths aren't used multiple timesStar Rauchenberger2025-08-171-0/+9
* Started writing a data validatorStar Rauchenberger2025-08-161-0/+97
Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
#ifndef AREA_POPUP_H_03FAC988
#define AREA_POPUP_H_03FAC988

#include <wx/wxprec.h>

#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif

#include <vector>

class AreaPopup : public wxScrolledCanvas {
 public:
  AreaPopup(wxWindow* parent, int area_id);

  void ResetIndicators();
  void UpdateIndicators();

 private:
  enum IndicatorType {
    kLOCATION,
    kPAINTING,
  };

  struct IndicatorInfo {
    // For locations, the id is an index into the map area's locations list.
    // For paintings, it is a real painting id.
    int id;
    IndicatorType type;
    int y;

    IndicatorInfo(int id, IndicatorType type, int y)
        : id(id), type(type), y(y) {}
  };

  void OnPaint(wxPaintEvent& event);
  void OnDPIChanged(wxDPIChangedEvent& event);

  void LoadIcons();

  int area_id_;

  const wxBitmap* unchecked_eye_;
  const wxBitmap* checked_eye_;
  const wxBitmap* unchecked_owl_;
  const wxBitmap* checked_owl_;

  int full_width_ = 0;
  int full_height_ = 0;
  wxSize header_extent_;

  std::vector<IndicatorInfo> indicators_;

  wxBitmap rendered_;
};

#endif /* end of include guard: AREA_POPUP_H_03FAC988 */