]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/install-progress.h
generalize Acquire::GzipIndex
[apt.git] / apt-pkg / install-progress.h
index baf24537641dc7ab02c9f9c16124df91465b4018..5d1a20e9bb814c765fa92b91908714e5472befe6 100644 (file)
@@ -1,6 +1,8 @@
 #ifndef PKGLIB_IPROGRESS_H
 #define PKGLIB_IPROGRESS_H
 
 #ifndef PKGLIB_IPROGRESS_H
 #define PKGLIB_IPROGRESS_H
 
+#include <apt-pkg/macros.h>
+
 #include <string>
 #include <unistd.h>
 #include <signal.h>
 #include <string>
 #include <unistd.h>
 #include <signal.h>
@@ -120,12 +122,18 @@ namespace Progress {
  private:
     static void staticSIGWINCH(int);
     static std::vector<PackageManagerFancy*> instances;
  private:
     static void staticSIGWINCH(int);
     static std::vector<PackageManagerFancy*> instances;
+    APT_HIDDEN bool DrawStatusLine();
 
  protected:
     void SetupTerminalScrollArea(int nr_rows);
     void HandleSIGWINCH(int);
 
 
  protected:
     void SetupTerminalScrollArea(int nr_rows);
     void HandleSIGWINCH(int);
 
-    int GetNumberTerminalRows();
+    typedef struct {
+       int rows;
+       int columns;
+    } TermSize;
+    TermSize GetTerminalSize();
+
     sighandler_t old_SIGWINCH;
     int child_pty;
 
     sighandler_t old_SIGWINCH;
     int child_pty;
 
@@ -138,6 +146,10 @@ namespace Progress {
                                unsigned int StepsDone,
                                unsigned int TotalSteps,
                                std::string HumanReadableAction);
                                unsigned int StepsDone,
                                unsigned int TotalSteps,
                                std::string HumanReadableAction);
+
+    // return a progress bar of the given size for the given progress 
+    // percent between 0.0 and 1.0 in the form "[####...]"
+    static std::string GetTextProgressStr(float percent, int OutputSize);
  };
 
  class PackageManagerText : public PackageManager
  };
 
  class PackageManagerText : public PackageManager